1. A computer implemented method comprising: analyzing first code in a first language that is executable in a first managed runtime environment; generating one or more stubs in a second language that is executable in a second managed runtime environment, wherein the one or more stubs are generated based on the analyzed first code; generating intermediate code in a high-level language based on the analyzed first code; converting the intermediate code into linking code so that the linking code allows second code in the second language that is executable in the second managed runtime environment, but is not executable in the first managed runtime environment, to interact with the first code that is executable in the first managed runtime environment, wherein the converting the intermediate code into the linking code comprises: generating additional code comprising one or more type converters to convert: an input in the second language to an input in the first language; and an output in the first language to an output in the second language; adding the additional code comprising the one or more type converters into the intermediate code so that the intermediate code includes the one or more type converters; and compiling the intermediate code into mixed mode assembly code; configuring the one or more stubs in the second language and the linking code to allow access between the second code in the second language and the first code in the first language, wherein the configuring comprises: linking the one or more stubs in the second language to the linking code; and linking the second code in the second language to the linking code; and executing a program that includes the second code in the second managed runtime environment, wherein executing the program comprises using the one or more stubs in the second language to access the first code in the first language through the linking code; wherein the first code is executed in the first managed runtime environment.