This article needs additional citations for verification. (April 2019) |
El código administrado es el código de un programa informático que requiere y se ejecutará únicamente bajo la gestión de una infraestructura de lenguaje común (CLI); un sistema de ejecución virtual (VES); una máquina virtual , por ejemplo , .NET , CoreFX o .NET Framework ; Common Language Runtime (CLR); o Mono . El término fue acuñado por Microsoft .
El código administrado es la salida del compilador del código fuente escrito en uno de más de veinte lenguajes de programación de alto nivel , incluidos C# , J# y Visual Basic .NET .
La distinción verdadera y precisa entre código administrado y no administrado es frecuente y solo es relevante cuando se desarrollan aplicaciones que interactúan con implementaciones de CLR. Dado que muchos lenguajes de programación más antiguos se han adaptado a CLR, la diferenciación es necesaria para identificar el código administrado, especialmente en una configuración mixta. En este contexto, el código que no depende de CLR se denomina "no administrado".
Se creó una fuente de confusión cuando Microsoft comenzó a conectar .NET Framework con C++ y la elección de cómo nombrar las Extensiones administradas para C++ . Primero se llamó C++ administrado y luego se renombró C++/CLI . El creador del lenguaje de programación C++ y miembro del comité de estándares de C++, Bjarne Stroustrup , incluso comentó sobre este tema: "En la difícil y controvertida cuestión de cómo se debe llamar a la vinculación/extensiones CLI a C++, prefiero C++/CLI como una abreviatura de 'Las extensiones CLI a ISO C++'. Mantener C++ como parte del nombre recuerda a la gente cuál es el lenguaje base y ayudará a mantener C++ como un subconjunto adecuado de C++ con las extensiones C++/CLI". [1]
El compilador de Microsoft Visual C++ puede producir código administrado, que se ejecuta bajo CLR, o binarios no administrados, que se ejecutan directamente en Windows. [2]
Los beneficios de usar código administrado incluyen la conveniencia para el programador (al aumentar el nivel de abstracción, creando modelos más pequeños) y garantías de seguridad mejoradas, dependiendo de la plataforma (incluida la implementación de la VM). Hay muchos ejemplos históricos de código que se ejecuta en máquinas virtuales, como el lenguaje UCSD Pascal que usa p-code y el sistema operativo Inferno de Bell Labs que usa la máquina virtual Dis . Java popularizó este enfoque con su bytecode ejecutado por la máquina virtual Java .
Google también menciona que Java y Kotlin son códigos administrados en sus documentos JNI del NDK de Android [3] [4]