编译原理 学习总结

编译原理介绍编译程序构造的原理与方法,了解编译程序是如何运行。我们将程序用高级语言写出来通过编译程序将其翻译为机器能识别的语言从而执行,编译原理可由一张图可以概括。


高级语言如何转换为机器能识别的机器语言大致要经过五个过程。

1.代码要起到什么作用,可以通过分析其成分来得出其作用。于是第一阶段就是识别单词,将单词分类以便后续处理。但高级语言有多种,每种有其自己的特色,也不尽相同。我觉得这也是文法的由来。文法用来描述语言,但语言的又有区分,从而有文法的分类与不同。最好的是0型文法。但符合这样文法的语言不多,这也是不同编译程序产生的原因。有了文法就可以识别单词是否符合该文法。理解编译程序如何运行就可通过语法分析树。

2.词法分析是将句子里的单词识别并判断其组合是否符合文法结构。主要介绍了词法分析器的设计,介绍了正规式与正规文法,有限状态自动机,有限状态自动机之间的转换,正规文法与有限状态自动机之间的转换。

3.语法分析是将有词法分析传递过来的结果进行处理分析,判断是否符合语法要求。分为自上而下分析与自下而上分析,自上而下分析主要讲了LL(1)分析法。运用消除左递归,first集,follow集,预测分析表。自下而上分析讲了两种方法——算符优先与LR分析法。算符优先介绍了算符优先文法,及其判定,算法优先表。LR分析法介绍LR(0)项目族集,与分析表的构造。SLR分析表与LR(1)分析表。

4.当句子符合语法后,还要判断其语义问题。包含属性文法与语法制导翻译,综合属性,继承属性,S-属性文法及计算,L-文法及翻译,依赖图,遍历。

5.符合语义后即可产生中间代码,中间代码的表示,逆波兰式,图表示法,三地址代码。运用这些对赋值,控制,说明,布尔表达式••••••语句进行翻译,主要是运用四元式,涉及回填。

编译原理的学习已经告一段落。感觉自己学的挺不错的,但考试结果却不尽人意,感觉自己平时下的功夫还不到,有些地方学的不尽人意,在考试中就体现出来。还是应该多花功夫去学习,如果学好的话,是不是就可以做出一个编译器啦,哈哈!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理经典教材 目录 第一章引论 1.1什么叫编译程序 1.2编译过程概述 1.3编译程序的结构 1.3.1编译程序总框 1.3.2表格与表格管理 1.3.3出错处理 1.3.4遍 1.3.5编译前端与后端 1.4编译程序与程序设计环境 1.5编译程序的生成 第二章高级语言及其语法描述 2.1 程序语言的定义 2.1.1语法 2.1.2 语义 2.2 高级语言的一般特性 2.2.1 高级语言的分类 2.2.2程序结构 2.2.3数据类型与操作 2.2.4语句与控制结构 2.3程序语言的语法描述 2.3 上下文无关文法 2.3.2语法分析树与二义性 2.3.3 形式语言鸟瞰 练 习 第三章词法分析 3.1 对于词法分析器的要求 3.1.1词法分析器的功能和输出形式 3.1.2词法分析器作为一个独立子程序 3.2词法分析器的设计 3.2.1输入、预处理 3.2.2 单词符号的识别:超前搜索 3.2.3状态转换图 3.2.4状态转换图的实现 3.3正规表达式与有限自动机 3.3.1正规式与正规集 3.3.2确定有限自动机(DFA) 3.3.3非确定有限自动机(NFA) 3.3.4正规文法与有限自动机的等价性 3.3.5 正规式与有限自动机的等价性 3.3.6确定有限自动机的化简 3.4词法分析器的自动产生 3.4.1语言LEX的一般描述 3.4.2超前搜索 3.4.3 LEX的实现 练 习 第四章语法分析——自上而下分析 4.1 语法分析器的功能 4.2 自上而下分析面临的问题 4.3 LL(1)分析法 4.3.1左递归的消除 4.3.2消除回溯、提左因子 4.3.3 LL(1)分析条件 4.4递归下降分析程序构造 4.5预测分析程序 4.5.1预测分析程序工作过程 4.5.2预测分析表的构造 4.6 LL(1)分析中的错误处理 练 习 第五章语法分析——自下而上分析 5.1 自下而上分析基本问题 5.1.1 归约 5.1.2规范归约简述 5.1.3符号栈的使用与语法树的表示 5.2算符优先分析 5.2.1算符优先文法及优先表构造 5.2.2算符优先分析算法 5.2.3优先函数 5.2.4算符优先分析中的出错处理 5.3LR分析法 5.3.1 LR分析器 5.3.2LR(O)项目集族和LR(O)分析表的构造 5.3.3 SLR分析表的构造 5.3.4规范LR分析表的构造 5.3.5 LALR分析表的构造 5.3.6 二义文法的应用 5.3.7LR分析中的出错处理 5.4语法分析器的自动产生工具YACC 练 习 第六章属性文法和语法制导翻译 6.1属性文法 6.2基于属性文法的处理方法 6.2.1 依赖图 6.2.2树遍历的属性计算方法 6.2.3 一遍扫描的处理方法 6.2.4抽象语法树 6.3 S-属性文法的自下而上计算 6.4 L-属性文法和自顶向下翻译 6.4.1 翻译模式 6.4.2自顶向下翻译 6.4.3递归下降翻译器的设计 6.5自下而上计算继承属性 6.5.1 从翻译模式中去掉嵌入在产生式中间的动作 6.5.2分析栈中的继承属性 6.5.3模拟继承属性的计算 6.5.4 用综合属性代替继承属 练 习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值