0

编程语言通常带有至少部分由该语言本身实现的标准库。

在解释语言的情况下,明显的实现是在解释器启动时读取库源文件,但这会遇到一个混乱但持久的问题,即确保解释器知道在哪里找到这些文件,即使它们都被移动了. 如果它们可以嵌入解释器本身会更干净,所以只有一个可执行文件。

通过将库源文件转换为 C 文字字符串,我可以看到一种简单的方法,但我很好奇是否有任何我忽略的陷阱或对该方法的改进。

所以我的问题是,现有的解释语言将语言本身中的库源文件附加到解释器?

4

1 回答 1

2

字节码虚拟机通常对此提供答案:将字节码存储在文件(*.pyc、*.rbc)中,并使用更简单的机制加载库的字节码版本。

Smalltalks 通过将标准堆转储到一个名为“图像”的单独文件中来做到这一点。

对于单文件分发,将库文件附加到可执行文件的末尾,并包含解释器从其二进制文件中读取并找到那些可解释程序数据的结构的特殊逻辑,或者构建解释器程序数据的静态包含。

于 2011-02-26T21:12:17.523 回答