0

我正在开发一个解释器,最近才发现 graal truffle,如果我用它来实现解释器,它可以保证快速的性能。但是,据我所知,解释器的代码以及编译器优化它的难易程度会有所不同。我正在开发的解释器具有完全延续的功能,我使用 CPS 转换和蹦床来实现 TCO。如果我将它移植到松露,我是否希望获得体面的性能,或者由于代码的体系结构,它从根本上不会比用 java 编写的常规解释器更好地工作?

4

1 回答 1

2

您需要确保延续是恒定的,例如,部分评估必须通过蹦床看到“恒定”目标。我还没有看到 GraalVM 的 CPS 解释器。解释器可能会比 AST 或字节码解释器慢,但编译后的代码应该一样快。有关更多技术问题,请查看https://github.com/oracle/graal/tree/master/truffle#community

于 2021-05-23T16:35:22.223 回答