第二章-高级语言与语法描述的内容总结
2018-03-25 00:03
190 查看
一.内容总结
本章主要内容由3部分组成:程序语言定义、高级语言的一般特性和程序语言的语法描述。其中第三部分的上下文无关文法、4种类型文法最为重要。1. 程序语言定义
程序语言主要由语法和语义两方面定义。(1) 语法由词法规则 和语法规则构成,三个基本概念:字母表、单词符号、语法单位
(2) 语义是指这样的一组规则,使用它可以定义一个程序的意义。
2. 高级语言的一般特征
2.1分类:
2.2数据类型与操作
初等数据类型 数据结构 抽象数据类型*有到课后题:名字和标识符的区别?
名字和标识符是两个不同的概念有着本质的区别,标识符是一个没有意义的字符序列,名字有着明确的意义和属性。
2.3程序设计语言支持不同的语句和控制结构
(1) 表达式 组成,常见形式(前缀,中缀,后缀)(2) 语句:说明性、执行性语句(赋值、控制、输入/输出)
3. 形式描述(重要)
重要概念:
字母表:由若干元素组成的有限非空集合,用 ∑表示,它的每个元素称为一个符号。符号串: 由∑中的符号所构成的有穷序列。
符号串的前缀和后缀及子串:设x是一个符号串,将x的尾(前)部删掉几个字符后形成的符号串,称为x的前(后)缀。
空字:不包含符号的序列称为空字,记为ε。
用∑*表示∑上的所有符号串的全体,空字也包括在其中。
V*是V的闭包
V* = V0 U V1 U V2 U V3…
V+ = VV*称为V的正则闭包
3.1上下文无关文法
(1) 它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。(2) 形式上定义一个上下文无关文法G是一个四元式(VT,VN,S,P)
VT:终结符号乃是组成语言的基本符号,即在程序语言中以前屡次提到的单词符号,如基本字,标识符,常数,算符和界符等.
VN:非终结符号(也称语法变量)用来代表语法范畴。如“算术表达式”“布尔表达式”“过程” 等。
S:开始符号是一个特殊的非终结符号.
P:产生式(也称为产生规则或简称规则)是定义语法范畴的一种书写规则。
(3) 文法G所产生的句子的全体是一个语言,将它记为L(G).
(4) 最左(最右)推导:在推导的任何一步αÞβ,其中α、β是句型,都是对α中的最左(右)非终结符进行替换
3.2 语法分析树与二义性
语法分析树:简称语法树。用来表示推导过程。二义性:如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的,也就是说,若一个文法存在某个句子,它有两个不同的最左(最右)推导,则这个文法是法是二义的。
消除方法:定义运算符优先级和结合性
几点限制: a. 文法中不含任何下面形式的产生式: P→P因为这种产生式除了产生二义性外没有任何用处。b. 每个非终结符P必须有用处。
3.3形式语言鸟瞰
乔姆斯基把文法分为四种类型:0型,1型,2型,3型
0型强于1型,1型强于2型,2型强于3型。
0型文法:G=(VT ,VN ,S ,P) 是一个0型文法,如果它的每个产生式是这样的结构 :ɑ→β,ɑ∈ (VNυVT)* 且至少有一个非终结符,而β∈(VNυVT)* 。0型文法也称短语文法。
1型文法:G的任何产生式a->b均满足 |a| ⩽ |b| (代表a、b的长度);仅仅S->ℇ例外,但S不得出现在任何产生式的右部。 1型文法又称为上下文有关文法。
2型文法:G的任何产生式为A->b,A∈VN,b∈(VNUVT)* 。2型文法称上下文无关文法 。
3型文法:G的任何产生式为A->aB 或 A->a,其中a∈(VT)*,A、B∈VN。3型文法等价于正规式,也称正规文法。
二.学习体会
之前一直使用高级语言编写程序,只是去使用,并不了解高级语言在计算机中到底是如何运作的,而编译原理就是告诉我们计算机如何将高级语言翻译成机器语言并求得计算结果的。第二章的前两节是一些关于高级语言相关知识点,之前也有所接触,比较好理解。比较新的,抽象的是第三节上下文无关文法,概念特别多,有些地方也比较抽象,理解起来也不太好理解,需要多花点时间。课上讲的一些例题,像是由某个文法定义了什么语言,有些很简单,稍加思索就可以看出答案。但有一些,产生很多中间式,中间式又产生很多中间式,推着推着就把自己给绕晕了。还有倒着推的那种,由某种语言去推文法,感觉这个自己也不太会做,看见答案,一下子就明白了,自己推还是想不太出来。这个方面还得多看相关文法的例题,多多积累。另外,0123型文法,还是有点迷糊,课下得找时间消化消化,总结一下它们之间的区别与联系。总之,编译原理学起来还是有难度的,不光要在课上听明白,课下也要拿出时间去理解消化。相关文章推荐
- 编译原理-第二章-高级语言及其语法描述总结
- 编译原理第二章高级语言机器语法描述总结
- 编译原理-高级语言及其语法描述作业总结
- 编译原理第二章-高级语言及其语法描述
- 第二章 高级语言及语法描述
- 第二章 高级语言及其语法描述
- 编译原理第二章高级语言及其语法描述内容总结
- 编译原理第二章高级语言及其语法描述内容总结
- 第二章 高级语言及其语法描述
- 编译原理-第二章-高级语言及其语法描述
- 高级语言及其语法描述
- 【编译原理】高级语言及其语法描述
- 高级语言及其语法描述
- 高级语言及其语法描述
- 学习:程序设计语言——编译原理(二、高级语言及其语法描述)
- * 通常高级程序设计语言所包含的语法内容:
- 编译原理高级语言及其语法描述
- 编译原理高级语言及其语法描述
- 高级语言及其语法描述
- 编译原理学习笔记(二)——高级语言及其语法描述