I Wrote a Compiler
a year ago
- #compiler
- #Go
- #BASIC
- 作者在一个周末为名为toybasic的简化BASIC变体编写了编译器。
- 该编译器使用Go语言编写,能将BASIC代码转换为Go代码。
- 编译器分为三个阶段:词法分析器(Lexer)、解析器(Parser)和编译器(Compiler)。
- 词法分析器使用nex工具将源代码标记化。
- 解析器通过goyacc从标记构建语法树。
- 编译器通过遍历语法树生成Go代码。
- 该项目受TinyBASIC启发,但移除了INPUT语句功能。
- 完整代码已开源在GitHub上。
- 作者用包含所有语言结构的BASIC程序测试了编译器。
- 这个项目对作者而言既有趣又富有教育意义。