脚本语言解释器源代码,可以学习

Scripting language interpreter source code to learn from

本文关键字:学习 源代码 语言 解释器 脚本      更新时间:2023-10-16

我想阅读并学习脚本语言的解释器/编译器的源代码。什么脚本语言解释器/编译器具有最简单,最干净,最容易阅读的源代码?我希望它是用C/c++写的(编译器是用什么写的?)因为我打算用C写一个编译器。

看一下lua,您可以浏览该编程语言的第一个版本,看看它是如何发展的。它是用C写的,有一个干净漂亮的代码。几乎每种编程语言都可以编写编译器,但C语言是大多数程序员选择的语言。

CPython中断器已经存在很长一段时间了,我想它对你会很有用。

AngelScript是学习编译器的一个很好的选择。这是一个具有C/c++熟悉语法的语言,垃圾回收,它是面向对象的,具有继承和多态,跨平台,可编译为字节码。

我的第二选择是Lua。

作为一个温和的介绍,我建议你看一下LLVM教程。

Chris Lattner创建了一个简单的玩具语言Kaleidoscope来显示编译的各个阶段:

  • 词法分析
  • 代码生成

然后他演示了如何添加JIT功能(对于解释器至关重要)。

玩具语言非常简单,因此生成的代码也很简单,并且很好地演示了体系结构,而不会使您陷入实现细节中。

我不确定该教程是否完全是最新的,并且可以针对最近的LLVM版本使用,但我建议至少阅读它。

(当然,阅读龙书)。

看看V8的JavaScript。每个interpeter都有一个叫做tokenizer的组件。GNU有一个名字叫bison。也看一看。这是有帮助的。Chromium也使用了一些标记器来解释Webkit上的html,但V8是javascript解释器。

Claudio M. Souza Junior

有名的语言,但不简单(PHP源码)。您可以利用源代码。

PHP源码