编译原理
打代码的小明
你会的别人都会
展开
-
虚拟机——TEST编译器(4)
目录1 虚拟机1.1 功能1.2 特点1.3 设计思路2 完整代码3 总结词法分析: 词法分析——TEST编译器(1)语法分析: 语法分析——TEST编译器(2)语义分析: 语义分析——TEST编译器(3)1 虚拟机1.1 功能读取中间代码并执行,此处的虚拟机相当于模拟了一个在机器上运行编译好的TEST代码的过程1.2 特点读取时采用结构体数组code储存指令及其操作数执行时采用操作数栈stack进行操作栈顶寄存器top为栈顶的下一个单元的下标,基址寄存器base为当前函数的数据区在s原创 2020-06-25 12:38:37 · 2379 阅读 · 6 评论 -
语义分析——TEST编译器(3)
目录1 语义分析1.1 功能1.2 错误类型1.3 中间代码1.4 符号表1.5 设计思路2 完整代码3 总结词法分析: 词法分析——TEST编译器(1)语法分析: 语法分析——TEST编译器(2)1 语义分析1.1 功能进行语义检查。对表达式中的操作数进行类型的一致性检查,例如误把函数名误当作变量名使用进行语义处理。对声明语句和可执行语句的处理,其中声明语句(int a ;)将变量名及其有关属性填入符号表把可执行语句生成相应的中间代码。1.2 错误类型函数名重复定义变量名重复定义原创 2020-06-24 12:17:20 · 2378 阅读 · 0 评论 -
语法分析——TEST编译器(2)
目录1 TEST语法规则3 语法分析3.1 功能3.2 特点3.3 错误类型3.4 设计思路4 完整代码5 总结在上一题篇中讲到了词法分析的过程,需要的可以点击查看 词法分析——TEST编译器(1)1 TEST语法规则语法分析是根据TEST语法规则来实现的。语法规则表明了每一个句子长什么样子,组成一个句子的单词都是以怎样的顺序排列的,例如<fun_declaration>表示一个函数,它由 function ID ’(‘ ‘ )’ < function_body> 构成,即函原创 2020-06-23 18:08:11 · 3191 阅读 · 2 评论 -
词法分析——TSET编译器(1)
目录1 编译器1.1 定义1.2 组成1.3 需要实现的功能2 TEST测试语言2.1 TEST词法规则2.2 TEST语法规则3 词法分析3.1 功能3.2 特点4 完整代码5 总结1 编译器1.1 定义编译器就是将高级程序语言翻译成机器语言的工具。可以理解为机器语言是给计算机看的,比较复杂。所以出现了C语言、Java等高级语言,这些语言是更适合人理解的东西,更符合人的逻辑。虽然人能更容易的看懂,但是计算机不知道是什么东西,所以需要一个东西进行翻译,这就是编译器。1.2 组成词法分析:识别单词原创 2020-06-19 16:02:04 · 3015 阅读 · 2 评论