gpt4 book ai didi

interpreter - 编译为字节码的动机是什么?

转载 作者:行者123 更新时间:2023-12-04 01:00:52 25 4
gpt4 key购买 nike

我正在研究我自己的玩具编程语言。现在我正在解释来自 AST 的源语言,我想知道编译为字节码然后解释它可以为我提供什么优势。

目前我想到了三件事:

  • 数百次遍历语法树可能比在数组中运行指令慢,特别是如果数组支持 O(1) 随机访问(即向上和向下跳转 10 条指令)。
  • 在类型化执行环境中,我有一些运行时成本,因为我的 AST 是类型化的,而且我一直在遍历它(即,我有 10 种类型的节点,我需要检查我现在使用的类型来执行)。也许编译为无类型的字节码可以帮助改善这一点,因为在类型检查和编译之后,我会有一个无类型的值和代码。
  • 编译为字节码可能会提供更好的可移植性。

  • 我的观点正确吗?编译为字节码背后的其他动机是什么?

    最佳答案

    速度是主要原因;在实践中解释 AST 太慢了。

    使用字节码的另一个原因是它可以简单地序列化(存储在磁盘上),以便您可以分发它。这就是 Java 所做的。

    关于interpreter - 编译为字节码的动机是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11433579/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com