Voglio intrufolarmi con l'interprete Python e provare a creare una piccola DSL. Esiste un modulo in cui posso fare qualcosa come questo codice teorico (simile agli alberi di espressione LINQ)?C'è un modo per generare codice bytecode Python?
expression_tree = Function(
Print(
String('Hello world!')
)
)
compile_to_bytecode(expression_tree)
O sarebbe semplicemente più semplice generare codice sorgente Python? Questo potrebbe essere reso più semplice usando C o SWIG o Cython?
Data la potenza espressiva enorme di linguaggi OO (Python in particolare) un DSL è abbastanza stupido. Basta scrivere il Python. Se fornisci buone definizioni di classe, hai un Python "simile a DSL" e non ne hai bisogno. –