编译原理-第一节(东南大学廖力老师)
1.作用
*编译原理是介绍如何将高级程序语言转变成机器能够识别的机器语言的
*它的理论基础坚实,其形式化系统不仅应用于编译技术,还应用于人工智能,多媒体技术和数据库等领域
1.1程序设计语言与编译
1) 程序设计语言
-高级语言(C,JAVA)
-汇编语言
-机器语言
在计算机上如何执行一个高级语言程序?
-把高级语言程序翻译成机器语言程序
-运行得到的机器语言程序求得计算结果
2) 程序设计语言的转换
*翻译
-指能把某语言的源程序在不改变语义的情况下,转换成另一种语言程序——目标语言程序
*编译
-专指由高级语言转换成低级语言
*解释
-接受某高级语言的语句输入,进行解释并控制计算机执行,马上得到这一句的执行结果,并执行下一句
-有点:直观易懂,便于实现人机对话
-缺点:效率低
*编译的转换过程
-两阶段转换:编译----运行
-三阶段转换:编译–汇编–运行
1.2编译程序概述
*编译程序的工作
-词法分析
-语法分析
-语义分析和中间代码生成
-优化
-目标代码生成
1.词法分析
-任务
输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。
-单词
是高级语言中有实在意义的最小语法单位,他是由字符构成
包含:基本字、标识符、正常数、运算符、界限符
-词法分析按照词法规则,识别出正确的单词,转换成统一格式备用。
-转换:对基本字、标识符、正常数、运算符、界限符的转换 转换完成后类号和内码
*描述词法规则的有效工具是正规式和有限自动机
2.语法分析
-任务
在词法分析的基础上,根据语言的语法规则,把单词符号组合成各类的语法单位。短语、子句、语句、过程、程序。
-语法规则
语言的规则,又称为文法。规定单词如何构成,短语、语句、过程和程序。
-语法规则的表示
-BNF: A::=B|C
3.语法分析的方法
-推导和归纳
推导:
-最左推导和最右推导
最右推导、最左规约
最左推导、最右规约