网站建设釒首先金手指十五全网营销推广 好做吗
一、什么是编译程序
编译程序是一种程序,能够将某一种高级语言编写的源程序改造成另一种低级语言编写的目标程序,他们在逻辑上等价、完成相同的工作

二、编译阶段
1、当目标程序是机器语言时,编译阶段:(1)编译阶段、(2)、执行阶段

当目标程序是汇编语言时,编译阶段:
(1)编译阶段 (2)汇编阶段 (3)执行阶段

三、编译的两种方式
1、编译方式:

此方式特点:书写源程序的高级语言独立于机器
2、解释方式:

四、编译过程的步骤
Example1:
I wish you success
词法分析 :识别出句子中的每一个字符串
语法分析:主 谓 宾 间宾
语义分析:分析句子的含义
中间代码生成:用一种中间语言或内部形式表示的结果
代码优化:修饰工作
目标代码生成:将中间代码翻译成目标程序

词法分析
输入源程序,对组成源程序的字符串从左到右进行扫描,并根据语言的(编写程序的高级语言)的构词(词法)规则识别分解出一个个具有独立意义的字符串(单词),然后按顺序一一输出单词。
单词:关键字(保留字、基本字),标识符,字符,标点符号。
输入:源程序
输出:单词符号序列
Example2:
分析源程序:main(){}
词法分析后的输出:
保留字main
(
)
{
}
2、语法分析
在词法分析:在词法分析的基础上,根据语言(高级语言)的语法规则(文法规则)分析程序的语法结构,把单词符号串分解成各类语法单位,同时判断各种语法成分在语法结构上的正确性。
语法单位:短语、句子、程序端
输入:单词序列
输出:语法分析后的单词序列
Example3:
分析程序: for i :=1 to 100 do i:=i+1;
经词法分析后的输出:for,i,:=,1,to,100,do,i,:=,+,1;
经过语法分析后为:

3、语义分析
根据语法成分的结构分析其含义
(1)类型审查 如C语言中,*MOD☆
若*为int,则☆必为int,否则报错
(2)类型转化 如:sum:=first + count*10
若count为浮点型,则把10也转换为浮点型
词法规则:单词符号的形成规则(如变量名用大写字母)
语法规定:规定如何从单词符号形成语法单位
4、中间代码生成
用一种中间语言或内部形式表示的结果
5、代码优化
对中间代码进行优化处理,使生成的代码更高效
6、目标代码生成
将中间代码翻译成目标程序
五、编译阶段的组合
编译前端:与源语言有关与目标机无关的部分
编译后端:与目标机有关的部分
遍:对源程序或源程序的中间结果从头到尾扫描一次称为一遍
六、编译程序实现的途径

T型图:将源语言S通过用语言H写的编译器翻译成目标语言T
T型图的两种组合方式


七、自展技术
用“滚雪球”的方式生成编译程序
思想:先用目标机的语言书写源程序的一个子集的编译程序,再用这个子集作为语言,实现源语言的编译程序。
八、自动生成技术
LEX自动生成词法分析工具
YACC自动生成语法分析工具
编译的编译