舟山网站建设制作,thinkphp cms开源系统,网站首页设计,做网站用php如何学习文章目录 基本概念定义一些概念 编译流程词法分析语法分析语义分析、生成中间代码中间代码 代码优化生成目标程序五个阶段中都需要做的两件事符号表管理出错处理 总结 其他概念多层中间表示和遍#xff08;PASS#xff09;三端模式课程概述 基本概念
定义
用高级语言编制的… 文章目录 基本概念定义一些概念 编译流程词法分析语法分析语义分析、生成中间代码中间代码 代码优化生成目标程序五个阶段中都需要做的两件事符号表管理出错处理 总结 其他概念多层中间表示和遍PASS三端模式课程概述 基本概念
定义
用高级语言编制的程序计算机不能立即执行必须通过一个“翻译程序”加工转化为与其等价的机器语言程序机器才能执行。 这种翻译程序称之为“编译程序” eg. *.c经过编译得到*.s目标程序最后经过汇编得到*.o再通过链接器与其他*.o文件结合即可进行运算。
一些概念
源程序 用汇编语言或高级语言编写的程序称为源程序。目标程序用目标语言所表示的程序。目标语言可以是介于源语言和机器语言之间的“中间语言”可以是某种机器的机器语言,也可以是某机器的汇编语言。比如 m i p s , a r m mips,arm mips,arm等翻译程序将源程序转换为目标程序的程序称为翻译程序。 它是指各种语言的翻译器包括汇编程序和编译程序是汇编程序、编译程序以及各种变换程序的总称。 汇编程序若源程序用汇编语言书写经过翻译程序得到用机器语言表示的程序这时的翻译程序就称之为汇编程序这种翻译过程称为“汇编”(Assemble编译程序若源程序是用高级语言书写经加工后得到目标程序这种翻译过程称“编译” 汇编程序与编译程序都是翻译程序主要区别是加工对象的不同。由于汇编语言格式简单常与机器语言之间有一一对应的关系汇编程序所要做的翻译工作比编译程序简单得多。 解释程序对源程序进行解释执行的程序。
编译流程 词法分析
分析和识别单词。 源程序是由字符序列构成的词法分析扫描源程序(字符串),根据语言的词法规则分析并识别单词并以某种编码形式输出。 单词是语言的基本语法单位一般语言有四大类单词 1语言定义的关键字或保留字如BEGIN、END、IF 2标识符 3常数 4分界符运算
语法分析
根据语法规则即语言的文法分析并识别出各种语法成分如表达式、各种说明、各种语句、 过程、函数等并进行语法正确性检查。
语义分析、生成中间代码
任务对识别出的各种语法成分进行语义分析 并产生相应的中间代码。
中间代码
中间代码一种介于源语言和目标语言之间的中间语言形式。目的是为了便于做优化处理且便于编译程序的移植。 中间代码的形式编译程序设计者可以自己设计常用的有四元式、三元式、逆波兰表示等
代码优化
目的为了得到高质量的目标程序。 前面的四元式中第一个四元式是计算常量表达式值该值在编译时就可以算出并存放在工作单元中不必生成目标指令来计算
生成目标程序
由中间代码很容易生成目标程序地址指令序列。这部分工作与机器关系密切 所以要根据机器进行。在做这部分工作时要注意充分利用累加器也可以进行优化处理
五个阶段中都需要做的两件事
符号表管理
在整个编译过程中始终都要贯穿着建表填表和查表的工作。即要及时地把源程序中的信息和编译过程中所产生的信息登记在表格中而在随后的编译过程中同时又要不断地查找这些表格中的信息。
出错处理
规模较大的源程序难免有多种错误编译程序必须要有出错处理的功能。即能诊察出错误并能报告用户错误的性质和位置以便用户修改源程序。出错处理能力的大小是衡量编译程序质量好坏的一个重要指标。
总结 其他概念
多层中间表示和遍PASS
遍对源程序包括源程序中间形式从头到尾扫描一次并做有关的加工处理 生成新的源程序中间形式或目标程序通常称之为一遍。
三端模式
前端通常将与源程序有关的编译部分称为前端。 词法分析、语法分析、语义分析中端生成中间代码部分。中间代码生成、 代码优化后端与目标机有关的部分称为后端。 目标程序生成与目标机有关的优化
课程概述