Ich möchte mit dem Python-Interpreter herumhacken und versuchen, eine kleine DSL zu erstellen. Gibt es ein Modul, in dem ich so etwas wie diesen theoretischen Code machen kann (ähnlich wie LINQ-Expression-Bäume)?Gibt es eine Möglichkeit programmgesteuert Python-Bytecode zu generieren?
expression_tree = Function(
Print(
String('Hello world!')
)
)
compile_to_bytecode(expression_tree)
Oder wäre es nur einfacher, nur Python-Quellcode zu generieren? Könnte dies mit C oder SWIG oder Cython einfacher gemacht werden?
Angesichts der enormen Ausdruckskraft der OO-Sprachen (insbesondere Python) ist ein DSL ziemlich albern. Schreib einfach das Python. Wenn Sie sich gute Klassendefinitionen geben, haben Sie ein "DSL-ähnliches" Python und brauchen das nicht. –