编译原理与编译构造 课堂笔记2

本文以课堂笔记为主,可能略有删减、补充。

理念:

  • 自上而下,逐步求精——文法
  • 有限状态自动机(描述状态的模型)——由图灵机发展而来

计算机之父

  • 理论:图灵
  • 实际:冯诺依曼

编译做的事情有两件:

  1. 分析——判断程序是否正确,具体做法是将程序化为字符流

字符流

  • 词法:字符–>单词 判断单词是否合法
  • 句法:单词–>句子 判断句子是否合法

程序正确

  • 合法——符合语法规则
  • 语义正确性判断(做该做的事情,并且不做不该做的事情)——做正确的事情
  1. 综合部分——把正确的源程序化为优化的目标代码程序

连接1、2的桥梁是语法树与分析树(parse tree)

parse tree = syntax tree + syntax construction rule(语法构造规则)


语言组成的最小成分是字符,字符可以组成字符表

字符–>字符串(单词) 字符串是字符序列,不是字符集合,是有序序列

空串表示为ε

Σ是字符全集

Σ=Σ0Σ1Σn

Σ+=ΣΣ0 (所有有意义的单词)

所有的句子: (Σ)


推导、规约是逆过程

对于计算机来说,推导有最左推导、最右推导,而人的话随便怎么推导都无所谓,因此计算机的推导也称为惰性推导

同样,规约也是有最左规约、最右规约

最左规约、最右推导是逆过程


文法

当时没有怎么听得懂,所以没有记全,因此在百度上搜了两篇文章

参考文章1

参考文章2

如有侵犯,立马删除

补充

嵌入式文法

A->aBc,A是非终结符,a是终结符序列,B是非终结符,c也是终结符序列


本节课一个很重要的内容是由语言构造文法,由于一次没有讲完所有方法,因此另开一文

你可能感兴趣的:(编译原理与编译构造)