编译原理

63 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情

翻译程序 能够把某一种语言程序(称为源语言程序)转换为另一种语言程序(称为目标语言程序),而后者与前者在逻辑上是等价的。一个源语言的解释程序是这样的程序,它以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。

编译程序:诊断编译程序;优化编译程序;如果一个编译程序产生不同于其宿主机的机器代码,则称它为交叉编译程序;如果不需要重写编译程序中与机器无关的部分就能改变目标机,则称该编译程序为可变目标编译程序;世界上第一个编译程序——FORTRAN编译程序。

编译过程概述:词法分析,词法分析的结果是识别出如下的单词符号:基本字、标识符、赋值号、整常数,在词法分析阶段的工作中所依据的是语言的词法规则,描述词法规则的最有效工具是正规式和有限自动机;语法分析,在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位;语义分析与中间代码产生,对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译;优化,对前段产生的中间代码进行加工变换,以期在最后阶段产生出更为高效的目标代码。目标代码生成,把中间代码变换成特定机器上的低级语言代码,目标代码的形式可以是绝对指令代码或可重定位的指令代码或汇编指令代码。

程序语言的定义

语法:所谓一个语言的语法是指这样的一组规则,用它可以形成和产生一个合式的程序。

词法规则:是指单词符号的形成规则。

语法规则(或产生规则):规定了如何从单词符号形成更大的结构(即语法单位)。