Pergunta

Estou construindo um compilador direcionado ao .NET e já gerei CIL diretamente, mas gerar árvores DLR tornará minha vida bastante mais fácil.Estou apoiando alguns recursos dinâmicos, nomeadamente criação de funções em tempo de execução e digitação de patos, mas a grande maioria do código é completamente estática.

Agora que isso foi explicado, tenho as seguintes perguntas:

  • O DLR foi usado para compilação estática, fora de pequenos exemplos em blogs do MSDN?
  • Em caso afirmativo, que tipo de desempenho foi alcançado?
  • Caso contrário, há algo que impeça fundamentalmente isso?
  • Existem mecanismos melhores de geração de código do que usar o DLR ou emitir IL diretamente?

Qualquer visão sobre isso ou referências a blogs/código/palestras seria muito apreciada.

Foi útil?

Solução

Ainda não conheço ninguém que use o DLR dessa maneira, embora esse seja definitivamente um dos casos de uso pretendidos.Uma coisa interessante a considerar é que as árvores de expressão do DLR foram mescladas com as árvores de expressão do LINQ, portanto, o IL que está sendo produzido para o LINQ em alguma versão futura ainda não anunciada do Visual Studio usará o código DLR.

Um aspecto interessante de lançar o DLR como código aberto é que não temos ideia de que tipo de coisas interessantes as pessoas de fora da empresa podem estar fazendo com ele :).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top