8

Estoy compilando un compilador que se dirige a .NET y he generado CIL previamente directamente, pero la generación de árboles DLR me facilitará mucho la vida. Estoy soportando algunas características dinámicas, a saber, la creación de funciones de tiempo de ejecución y el tipo de pato, pero la gran mayoría del código es completamente estático.Uso del DLR para (principalmente) compilación de lenguaje estático

Así que ahora que eso ha sido explicado, tengo las siguientes preguntas:

  • tiene el DLR sido utilizados para la compilación estática, fuera de pequeños ejemplos en los blogs de MSDN?
  • Si es así, ¿qué tipo de rendimiento se logró?
  • Si no, ¿hay algo fundamentalmente que lo impida?
  • ¿Hay algún mecanismo mejor para generar código que usar el DLR o emitir IL directamente?

Cualquier comentario sobre esto o referencias a blogs/código/conversaciones sería muy apreciado.

Respuesta

7

No conozco a nadie que use el DLR de esta manera, aunque este es definitivamente uno de los casos de uso previstos. Una cosa interesante a considerar es que los árboles de expresión del DLR se han fusionado con los árboles de expresión LINQ, por lo que el IL que se está produciendo para LINQ en alguna versión futura aún no anunciada de Visual Studio usará el código DLR.

Un aspecto claro de lanzar el DLR como código abierto es que no tenemos idea de qué tipo de cosas interesantes podría estar haciendo la gente fuera de la compañía :).

+0

Gracias por su respuesta, he comenzado a construir algunos prototipos de compilación estáticos, así que veremos cómo van las cosas :) Voy a decir que no esperaba una respuesta de alguien en MS en un sitio bastante oscuro -- es bueno verlo :) –

Cuestiones relacionadas