1.可以采用边翻译边执行的解释执行方式,这种处理程序称为解释程序。解释程序的结果是源程序的执行结果。
2.先用目标机的汇编语言或机器语言书写源语言的一个子集的编译程序,然后再用这个子集作为书写语言,实现源语言的编译程序.通常这个过程会分成若干步,像滚雪球一样直到生成预计源语言的编译程序为止.我们把这样的实现方式称为自展技术.
3.前端主要依赖于源语言而与目标机无关,包括词法分析、语法分析、语义分析和中间代码生成。
后端工作指那些以来与目标机而一般不依赖源语言,至于中间代码有关的那些阶段,及目标代码生成以及先关出错处理和符号表操作。
4.编译过程划分为:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段。
词法分析:从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。
语法分析:在词法分析的基础上将单词分解成各类语法短语,如“程序”、“语句”、“表达式”。
语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。
中间代码生成:进行了语法分析和语义分析之后,有的编译程序将源代码生成一种内部代码,这种内部表现形式叫中间语言或中间代码。
代码优化:对前阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间
目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
多余状态:从自动机开始状态出发,任何输入都打不到的状态或从该状态出发到不了终止状态。
等价状态:从状态A出发能由某一字符串而停止于终态,从状态B出发也能得出同一字符串而终止,A与b等价
正则式:就是记录文本规则的代码
基本快:指程序中一个顺序执行的语句,其中只有一个入口语句和一个出口语句,执行的只能从其入口语句进入其出口语句退出
*闭包:设A为集合,则定义A的*闭包为A*=A0 UA+
可归规范前缀:若含有句柄的规范前缀,且每个句柄是a的后缀称a是可归规范前缀。
相关推荐: