脚本语言解释器源代码,可以学习
Scripting language interpreter source code to learn from
我想阅读并学习脚本语言的解释器/编译器的源代码。什么脚本语言解释器/编译器具有最简单,最干净,最容易阅读的源代码?我希望它是用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源码
相关文章:
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 神经网络不学习.卡在50%
- C++出现控制台错误.我无法识别源代码的问题
- 在学习数据结构之前对STL有一个了解是好的吗?
- Qt Quick,如何更改 Ui 源代码?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- 如何将经过训练的机器学习模型保存在python中并将其加载到C++中进行预测?
- 如何使用QT创建器获取网页源代码?
- 从源代码构建 gRPC C++
- 脚本语言解释器源代码,可以学习