分类: 从头构建一个微型编译器

虚拟机与字节码 [第六节]

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 为什么要了解编译器? 编译器是一个非常有趣的话题。你每天都在使用它们。它们将你编写的文本形式的源代码,转换成计算机能够执行的二进制指令。你是否曾……