Méthode dynamique C # - IL vs arbres d'expression

antlr c# dsl expression-trees il

Question

Je joue et j'apprends peu avec ANTLR en construisant un simple DSL pour .NET, transformant le script en chaîne en méthode dynamique. Ma première idée a été de traduire en opcodes IL, mais je lis maintenant des informations sur les arbres d’expression pour la création DM. Il semble que je puisse produire n'importe quelle méthode utilisant des arbres d'expression, tout comme le code IL?

Merci!

Code: https://github.com/ricardoborges/NPortugol2

Réponse populaire

IL Code vous donne un peu plus de pouvoir. Par exemple, vous pouvez l'utiliser pour émettre un code correct pour le CLR .NET, mais pas nécessairement quelque chose que vous auriez pu écrire en C # ou VB.NET.

Mais en général, oui, vous devriez être capable de faire à peu près tout ce que vous voulez faire avec les arbres d’expression, et ils sont beaucoup plus simples à comprendre.

L'émission de code IL s'exécutera probablement un peu plus rapidement que la compilation d'un arbre d'expression. Je ne m'inquiéterais pas pour cela (optimisation prématurée), mais cela vaut la peine d'être noté. Voir Comment une variable dynamique affecte-t-elle les performances? pour certaines spécifications de performance.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi