visual studio programacion net framework ejemplos definicion basico asp .net visual-studio parsing compiler-construction

studio - ¿Cómo crear un lenguaje de programación.Net?



visual studio (7)

o hay un mayor nivel de abstracción?

Solo para completar, puede generar C # o VB.NET. Ambos compiladores son parte del tiempo de ejecución.

Sin embargo, es dudoso si fuera un compilador "real".

He creado algunos lenguajes de programación completos diferentes utilizando algunas de las diversas herramientas de análisis disponibles. Sin embargo, ¿cómo podría alguien crear un lenguaje de programación que ejecute el framework .Net? ¿Tendré que generar el .Net IL y compilar eso o hay un nivel más alto de abstracción?

Además, ¿hay alguna manera fácil de hacer que el lenguaje funcione en Visual Studio?


Hay un compilador LOLCode construido en C # que podría ser un buen punto de partida.

http://code.google.com/p/lolcode-dot-net/

En cuanto a la implementación en Visual Studio, hay un motor de vista de código abierto llamado Spark ( http://www.sparkviewengine.com/ ) que hizo un poco de trabajo para lograr que intellisense funcione. El contexto es diferente, pero la lección es la misma, es difícil, y no es un proceso muy bien documentado.


No estoy seguro de si esto es lo que está buscando, pero después de tener una Pregunta sobre SO, he creado un Compilador .net para Brainf ** k como un excersize ( Parte 6 contiene el Código Fuente del Compilador real y también está en GitHub )

Básicamente, el compilador real se puede escribir en cualquier idioma .net y usar el System.Reflection.Emit nombres System.Reflection.Emit para crear ensamblajes, clases, métodos, etc. y emitir IL en ellos.

El trabajo real de crear un nuevo lenguaje obviamente implica escribir un analizador / analizador / analizador / lo que sea que pueda dividir tu programa en clases y "alimentar" tu compilador. Lo siento, no tengo experiencia en eso, pero mira esta lista de recursos sobre cómo para escribir un compilador

Desea leer ECMA-335 para aprender cómo funciona la CLI: qué tipos de datos admite y qué comandos hace realmente.


Querrá echarle un vistazo al proyecto de infraestructura común de compiladores (CCI) de Microsoft Research . Proporciona todo lo que necesita para generar los metadatos y MSIL para un ensamblaje. Y el archivo .pdb de depuración, bastante importante para que su lenguaje funcione.

Hay un proyecto hermano, CCI Code Model y AST, que también puede ser útil, depende de qué tan avanzado esté.


Su compilador es responsable de convertir el código que obtiene en ILCode. ILCode es el lenguaje común que todos y cada uno de los lenguajes .NET compilan. Este código es interpretado por JIT-Compiler en tiempo de ejecución. Por supuesto, puede confiar en las clases de CodeDom en el marco para lograr eso, si escribe el compilador en C # por ejemplo.


Un buen ejemplo para integrar su propio idioma en Visual Studio es el proyecto Lua Language Support .


Su compilador podría generar el lenguaje ensamblador CIL o un archivo de ensamblaje ( .dll / .exe ).

Eche un vistazo al ECMA-335 , que describe la CLI (la plataforma de destino), el CIL (lenguaje ensamblador) y el formato de archivo binario de ensamblajes.

Por cierto, el estándar también está disponible como un libro con anotaciones .