编译程序的步骤和任务:1)词法分析:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词
2)语法分析:是在词法分析基础上将单词序列分解成各类语法短语(比如程序、语句、表达式等),通过语法分析确定整个输入串是否构成一个语法上正确的程序
3)语义分析:是审查源程序有无语义错误,为代码生成阶段收集类型信息
4)中间代码产生:将源程序变成一种易于翻译成目标代码的内部表示形式
5)代码优化:对前阶段生成的中间代码进行变换或改造,使生成的目标代码更为高效6)目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码
前端和后端的概念,试问前端通常包括那些阶段,后端包括那些阶段
答:前端只依赖于源语言,与目标机无关
编译程序的前端通常包括词法分析程序、语法分析程序、语义分析程序、中间代码生成程序及相关的表格管理程序和出错处理程序
后端是指编译器中依赖于目标机器的部分,只与中间代码有关
通常包括目标代码生成程序、代码优化程序以及相关的表格管理程序和出错处理程序
遍(PASS):对输入文件(源程序或其等价的中间语言程序)从头到尾扫视,完成预定处理的过程
一个多遍的编译程序较之一遍的编译程序可能少占内存,逻辑结构可能清晰些,但效率相对可能差点3
程序的正确与否:结构上的语法规则,语义上的语义规则
翻译程序:汇编,解释,编译
解释程序及其与编译程序的比较解释程序功能:源程序+初始数据=计算结果解释与编译的区别:工作模式:这是根本区别,编译把源程序翻译成目标代码,而解释直接得到计算结果,不生成目标代码
存储区内容:编译方式翻译和执行分开,解释方式翻译和执行同时并允许修改源程序,因此二者存储组织不同
效率:解释慢于编译,很多语言两种方式都有
标识符:=表达式第三章:文法和语言1
文法的直观概念:一组判定规则