C # Dynamische Methode - IL vs Expression Trees

antlr c# dsl expression-trees il

Frage

Ich spiele und lerne wenig mit ANTLR, indem ich ein einfaches DSL für .NET erstelle und das Skript in String in Dynamische Methode umwandle. Meine erste Idee war die Übersetzung von IL-Opcodes, aber jetzt lese ich über Expression-Bäume für die DM-Erstellung. Es scheint, dass ich jede Methode mit Expression-Bäumen erzeugen kann, genau wie IL-Code?

Vielen Dank!

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

Beliebte Antwort

IL Code gibt Ihnen ein wenig mehr Power. Sie können damit beispielsweise Code verwenden, der für die .NET CLR korrekt ist, aber nicht unbedingt etwas, das Sie in C # oder VB.NET geschrieben haben könnten.

Aber im Allgemeinen, ja, sollten Sie in der Lage sein, alles zu tun, was Sie mit Ausdrucksbäumen tun wollen, und sie sind viel einfacher, um Ihren Kopf herum zu wickeln.

Das Ausgeben von IL-Code wird wahrscheinlich etwas schneller ablaufen als das Kompilieren eines Ausdrucksbaums. Ich würde mir darüber keine Sorgen machen (vorzeitige Optimierung), aber es ist erwähnenswert. Siehe Wie wirkt sich eine dynamische Variable auf die Leistung aus? für einige Leistungsangaben.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum