解释器 #编译原理 #概述文档
概述
项目源于我希望去弥补自己在计算机方面的知识不足,开始在极客时间学习编译器原理。
课程在: 编译原理之美
课程的源码:PlayWithCompiler
项目是课程: 01 ~ 05 之间的内容的一个整合实现
我的实现: https://gitee.com/kmyss/yss-compiler/tree/master/03-%E8%84%9A%E6%9C%AC%E8%A7%A3%E9%87%8A%E5%99%A8
对源项目的解析在 【分析-编译原理】编译原理之美手动实现脚本解释器源码分析
项目设计目标
下面内容摘录自课程
实现一个简单的脚本解释器。
- 支持变量声明和初始化语句,就像“int age” “int age = 45”和“int age = 17+8+20”
- 支持赋值语句“age = 45”
- 支持括号的运算
- 在表达式中可以使用变量,例如“age + 10 * 2”
- 支持加减乘除四则运算。
- 实现一个命令行终端,能够读取输入的语句并输出结果。
编译器的基础原理
编译器包括如下技术知识点:可以划分为前端和后端两个部分,对于简易脚本解释器只需要了解前端技术即可。
- 词法分析(Lexical Analysis)
利用状态机分析出所有的 词法记号(Token)。
- 语法分析 (Syntactic Analysis, or Parsing)
根据语法规则形成抽象树 AST 。构造语法数可以利用递归下降算法。
- 语义分析(Semantic Analysis)
