Tôi muốn hack xung quanh với trình thông dịch Python và thử tạo một DSL nhỏ. Có bất kỳ mô-đun mà tôi có thể làm một cái gì đó như mã lý thuyết này (tương tự như cây biểu hiện LINQ)?Có cách nào để tạo mã bytecode bằng Python không?
expression_tree = Function(
Print(
String('Hello world!')
)
)
compile_to_bytecode(expression_tree)
Hoặc sẽ dễ dàng hơn khi chỉ tạo mã nguồn Python? Điều này có thể được thực hiện dễ dàng hơn bằng cách sử dụng C hoặc SWIG hoặc Cython?
Với sức mạnh biểu cảm to lớn của các ngôn ngữ OO (đặc biệt là Python) DSL là khá ngớ ngẩn. Chỉ cần viết Python. Nếu bạn cung cấp cho mình các định nghĩa lớp tốt, bạn có một Python "giống như DSL" và không cần điều này. –