编译原理-第一节(东南大学廖力老师)

编译原理-第一节(东南大学廖力老师)

1.作用

  *编译原理是介绍如何将高级程序语言转变成机器能够识别的机器语言的
  *它的理论基础坚实,其形式化系统不仅应用于编译技术,还应用于人工智能,多媒体技术和数据库等领域

1.1程序设计语言与编译

1) 程序设计语言
     -高级语言(C,JAVA)
     -汇编语言
     -机器语言
     
     在计算机上如何执行一个高级语言程序?
     -把高级语言程序翻译成机器语言程序
     -运行得到的机器语言程序求得计算结果
     
 2) 程序设计语言的转换
      *翻译
         -指能把某语言的源程序在不改变语义的情况下,转换成另一种语言程序——目标语言程序
      *编译
         -专指由高级语言转换成低级语言
      *解释
         -接受某高级语言的语句输入,进行解释并控制计算机执行,马上得到这一句的执行结果,并执行下一句
         -有点:直观易懂,便于实现人机对话
         -缺点:效率低
      *编译的转换过程
        -两阶段转换:编译----运行

时序情况
-三阶段转换:编译–汇编–运行
时序情况

1.2编译程序概述

 *编译程序的工作
   -词法分析
   -语法分析
   -语义分析和中间代码生成
   -优化
   -目标代码生成

编译程序的工作
1.词法分析
-任务
输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。
-单词
是高级语言中有实在意义的最小语法单位,他是由字符构成
包含:基本字、标识符、正常数、运算符、界限符

-词法分析按照词法规则,识别出正确的单词,转换成统一格式备用。
-转换:对基本字、标识符、正常数、运算符、界限符的转换 转换完成后类号和内码

*描述词法规则的有效工具是正规式和有限自动机

2.语法分析
-任务
在词法分析的基础上,根据语言的语法规则,把单词符号组合成各类的语法单位。短语、子句、语句、过程、程序。
-语法规则
语言的规则,又称为文法。规定单词如何构成,短语、语句、过程和程序。
-语法规则的表示
-BNF: A::=B|C
赋值语句语法规则
3.语法分析的方法
-推导和归纳
推导:
-最左推导和最右推导
最右推导、最左规约
最右推导、最左规约
最左推导、最右规约
最左推导、最右规约
在这里插入图片描述

1.1 编译器概述.flv 1.2 编译器结构.flv 1.3 编译器实例.flv 2.1 词法分析的任务.flv 2.2.1 词法分析器的手工构造1.flv 2.2.2 词法分析器的手工构造2.flv 2.2.3 词法分析器的手工构造3.flv 2.3.1 正则表达式1.flv 2.3.2 正则表达式2.flv 2.3.3 正则表达式3.flv 2.3.4 正则表达式4.flv 2.4.1 有限状态自动机1.flv 2.4.2 有限状态自动机2.flv 3.1.1 RE转换成NFA:Thompson算法1.flv 3.1.2 RE转换成NFA:Thompson算法2.flv 3.1.3 RE转换成NFA:Thompson算法3.flv 3.2.1 NFA转换成DFA:子集构造算法1.flv 3.2.2 NFA转换成DFA:子集构造算法2.flv 3.2.3 NFA转换成DFA:子集构造算法3.flv 3.2.4 NFA转换成DFA:子集构造算法4.flv 3.3.1 DFA的最小化:Hopcroft算法1.flv 3.3.2 DFA的最小化:Hopcroft算法2.flv 3.3.3 DFA的最小化:Hopcroft算法3.flv 3.4.1 从DFA生成分析算法1.flv 3.4.2 从DFA生成分析算法2.flv 3.4.3 从DFA生成分析算法3.flv 4.1.1 语法分析的任务1.flv 4.1.2 语法分析的任务2.flv 4.1.3 语法分析的任务3.flv 4.2.1 上下文无关文法和推导1.flv 4.2.2 上下文无关文法和推导2.flv 4.2.3 上下文无关文法和推导3.flv 4.2.4 上下文无关文法和推导4.flv 4.2.5 上下文无关文法和推导5.flv 4.3.1 分析树和二义性文法1.flv 4.3.2 分析树和二义性文法2.flv 4.3.3 分析树和二义性文法3.flv 4.3.4 分析树和二义性文法4.flv 4.4.1 自顶向下分析1.flv 4.4.2 自顶向下分析2.flv 4.4.3 自顶向下分析3.flv 4.4.4 自顶向下分析4.flv 4.5.1 递归下降分析算法1.flv 4.5.2 递归下降分析算法2.flv 4.5.3 递归下降分析算法3.flv 4.5.4 递归下降分析算法4.flv 5.1.1 LL(1)分析算法1.flv 5.1.2 LL(1)分析算法2.flv 5.1.3 LL(1)分析算法3.flv 5.1.4 LL(1)分析算法4.flv 5.1.5 LL(1)分析算法5.flv 5.1.6 LL(1)分析算法6.flv 5.1.7 LL(1)分析算法7.flv 5.1.8 LL(1)分析算法8.flv 5.2 LL(1)分析的冲突处理.flv 5.3.1 LR(0)分析算法1.flv 5.3.2 LR(0)分析算法2.flv 5.3.3 LR(0)分析算法3.flv 5.3.4 LR(0)分析算法4.flv 5.4 SLR分析算法.flv 5.5 LR(1)分析算法.flv 5.6.1 LR(1)分析工具1.flv 5.6.2 LR(1)分析工具2.flv 5.6.3 LR(1)分析工具3.flv 6.1.1 语法制导翻译1.flv 6.1.2 语法制导翻译2.flv 6.1.3 语法制导翻译3.flv 6.2.1 语法制导翻译的实现原理1.flv 6.2.2 语法制导翻译的实现原理2.flv 6.3.1 抽象语法树1.flv 6.3.2 抽象语法树2.flv 6.3.3 抽象语法树3.flv 6.3.4 抽象语法树4.flv 6.4.1 抽象语法树的自动生成1.flv 6.4.2 抽象语法树的自动生成2.flv 7.1.1 语义分析的任务1.flv 7.1.2 语义分析的任务2.flv 7.1.3 语义分析的任务3.flv 7.2.1 语义规则及实现1.flv 7.2.2 语义规则及实现2.flv 7.2.3 语义规则及实现3.flv 7.2.4 语义规则及实现4.flv 7.3.1 符号表1.flv 7.3.2 符号表2.flv 7.3.3 符号表3.flv 7.4 语义分析中的其它问题.flv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值