Alb*_*ert 5 python scripting jit abstract-syntax-tree vm-implementation
我在某种形式的AST中有一些代码,我想执行它.
我可以想到几种方法,例如:
ast
模块)和
compile
那或eval
那.compile
那或eval
那.我想我会通过将它转换为Python AST来获得禁食执行compile
,然后运行它.ESP.当使用PyPy时,我甚至可能通过PyPys JIT编译优化得到改进(我希望我这样做,是吗?).
你能想到其他可能性吗?你能就什么是最好的方式提出建议吗?
另一种可能性:将 AST 直接翻译为 Python 字节码并执行。除了使用现有的 Python VM 之外,这就像您的最后一个想法。
这不是一个很大的可能性,因为它可能需要大量工作,而且 Pythoncompile
可能会做得更好,除非在相当特殊的情况下,但我只是把它扔在那里。