jueves, 3 de noviembre de 2016

CoreRT de Microsoft convierte C# en el lenguaje multiplataforma C++

¿Deseas ejecutar aplicaciones .NET en plataformas que no tienen instalado el framework de .NET? Microsoft está desarrollando una tecnología para convertir aplicaciones de C# en sus contrapartes nativas de C++. El proyecto de código abierto CoreRT genera código C++ a partir de una aplicación en C#, que puede ser compilado y enlazado en cualquier plataforma de destino que soporte C++.






CoreRT


Microsoft está cambiando lentamente la cadena de herramientas .Net para permitir la compilación anticipada de aplicaciones en plataformas donde no hay una cadena de herramientas .Net.

El proyecto CoreRT de código abierto elimina el uso de la línea de comandos estándar Runtime (CLR) de .Net para ejecutar aplicaciones. En su lugar, genera código C ++ a partir de un código de la aplicación .Net C #, que puede ser compilado y enlazado en cualquier plataforma de destino que admita C ++.

En un post en el blog de desarrollo de AlphaGeek de Microsoft, Microsoft brevemente estableció sus planes para cómo CoreRT funcionará, junto con su razón de ser para crearlo.




Typical .NET Compilation, JIT Compilation and Execution Cycle



CoreRT CodeGen Current and Planned



"Si realmente quisiera escribir algún código C # y tenerlo 'solo trabajo' en un nuevo dispositivo IoT", escribió Microsoft, "no tengo opciones hasta que el RyuJIT es capaz de generar código de máquina que funciona con ese procesador y sistema operativo." Mediante la compilación cruzada de C # a C ++, los desarrolladores de .Net pueden entregar sus aplicaciones sin necesidad de esperar a que .Net se despliegue en una plataforma determinada, dice Microsoft.

Microsoft señaló que había hecho algún proceso significativo hacia este objetivo a lo largo del año, aunque reconoció que la tarea es más fácil decirlo que hacerlo. El problema más prominente es común a los proyectos que implican trasladar un idioma a otro. C ++ y .Net no tienen una correspondencia uno a uno entre sus características: la sintaxis, las estructuras de datos, la lógica del lenguaje, etc. Por lo tanto, CoreRT tiene que mapear elegantemente ciertas funciones .Net en C ++.

Nuitka

Otro gran proyecto que transpila un lenguaje en C ++ para acelerar su ejecución es Nuitka, que convierte los programas de Python en C ++. Nuitka es un proyecto en curso que enfrenta muchos de los mismos problemas que CoreRT y tiene quizás un tiempo aún más difícil reconciliarlos. La naturaleza dinámica de Python dificulta la conversión en un lenguaje compilado por adelantado, ya que cada construcción en el lenguaje es potencialmente un objeto con propiedades altamente cambiantes. C # es menos problemático desde ese punto de vista, ya que utiliza el tipo estático para las variables, pero como se señaló anteriormente, todavía viene con una serie de dificultades.

Hay mucho sobre CoreRT que desciende directamente del realineamiento en curso de Microsoft alrededor de código abierto y tecnologías populares que no son de Microsoft. Pero Microsoft siempre ha sido pragmático acerca de por qué lo hace, y aquí el pragmatismo trata de ver cómo las aplicaciones .Net pueden funcionar en plataformas y en ecosistemas que anteriormente no las soportaban.

CoreRT teóricamente puede ampliar el alcance del ecosistema .Net sin que Microsoft tenga que hacer un esfuerzo indebido. Es más fácil escribir un sistema de transpilación de una sola vez de C # a C + + que crear turnos para cualquier número de otras plataformas de destino. Claro, terceros pueden crear tales tiempos de ejecución gracias a .Net ahora ser un problema de código abierto. Pero el plan de Microsoft es encontrar una manera de salvarlos - y en sí mismo - el problema.


Fuente:http://www.infoworld.com/article/3131551/open-source-tools/microsofts-corert-turns-c-into-cross-platform-c.html

No hay comentarios:

Publicar un comentario