分类: 从头构建一个微型编译器
虚拟机与字节码 [第六节]
6.1 编译的两个阶段
我们的编译器项目分为两个阶段:
1. 将语法树编译为一个假想的虚拟机(VM)的指令。
2. 将虚拟指令映射到 x64 指令,并生成 Linux ELF ……
计算机的工作原理 [第五节]
本书的最终目标是将我们的语言编译成能够在 CPU 上原生运行的机器码。要实现这一目标,我们需要对计算机的工作原理有一定的了解。所以,让我们从宏观层面来看……
解释器:控制流与函数 [第四节]
4.1 条件判断语句(If-Then-Else)
为实现条件判断语句(if-then-else)的控制流,添加了一个新命令:
(if condition yes)
(if condition yes no)
if 命令与……
变量与作用域 [第三节]
3.1 简介
在上一章中,我们实现了一个简单的计算器。为了让它更像一门编程语言,我们还需要添加三个方面的内容:
1. 变量。用于操作状态。
2. 控制流。比如……
一个简单的计算器 [第二节]
2.1 简介
构建编译器或解释器的第一步是将源代码解析成树状结构。大多数解析工作都可以通过递归的方式完成,一旦你学会了如何进行解析,就可以解析大多数计算……
简介 [第一节]
1.1 为什么要了解编译器?
编译器是一个非常有趣的话题。你每天都在使用它们。它们将你编写的文本形式的源代码,转换成计算机能够执行的二进制指令。你是否曾……