利用Vmgen构建解释器及LOTOS NT在编译器构建中的应用
1. Vmgen构建解释器
1.1 解释器概述
解释器是实现编程语言的常用方法,具有易于实现、可移植性强以及快速编辑 - 编译 - 运行周期等优点。Vmgen是一个解释器生成器,它可以自动完成编写解释系统中虚拟机(VM)部分的许多任务。Vmgen支持多种高性能技术和优化,使用它构建的解释器往往比其他同语言的解释器更快。
1.2 示例介绍
本次使用的示例是Vmgen包中提供的一个小型类Modula - 2语言的解释系统,该语言使用JVM风格的虚拟机,支持整数变量和表达式、赋值、if和while结构、函数定义和调用。示例解释器由前端和VM解释器两部分组成,前端负责解析源代码并生成VM代码,VM解释器负责执行VM代码。
1.3 示例代码文件分析
示例解释器的源代码文件及其相关信息如下表所示:
| 名称 | 行数 | 描述 |
| — | — | — |
| Makefile | 67 | |
| mini - inst.vmg | 139 | VM指令描述 |
| mini.h | 72 | 公共声明 |
| mini.l | 42 | 前端扫描器 |
| mini.y | 139 | 前端(解析器、VM代码生成器) |
| support.c | 220 | 符号表、main() |
| peephole - blacklist | 3 | 不能组合的VM指令 |
| disasm.c | 36 | 模板:VM反汇编器 |
| engine.c | 186 |
超级会员免费看
订阅专栏 解锁全文
465

被折叠的 条评论
为什么被折叠?



