《编译原理课件高级语言及其语法描述》由会员分享,可在线阅读,更多相关《编译原理课件高级语言及其语法描述(66页珍藏版)》请在金锄头文库上搜索。
1、1 教学内容教学内容 2.0 语言概述语言概述 2.1 程序语言的定义程序语言的定义 2.2 文法的直观概念与语言的关系文法的直观概念与语言的关系 - - 重重 点点 2.3 程序设计语言的语法描述程序设计语言的语法描述- - 重点难点 重点难点 第二章第二章 高级语言及其语法描述 高级语言及其语法描述 2 第二章第二章 高级语言及其语法描述 高级语言及其语法描述 对于高级程序设计语言及其编译程序来说对于高级程序设计语言及其编译程序来说, 语言的语法定义是很重要的语言的语法定义是很重要的。 本章主要介绍语法结构的本章主要介绍语法结构的形式描述形式描述问题问题,并并 讨论上下文无关文法讨论上下文
2、无关文法、正规文法正规文法。 编译原理主要内容也可以归结为应用编译原理主要内容也可以归结为应用形式语形式语 言言理论理论,并将它贯穿于词法分析和语法分析并将它贯穿于词法分析和语法分析 两个阶段两个阶段。 3 2.0 语言概述 语言概述 语言语言是某一字母表上符号串是某一字母表上符号串 (句子句子)的集合的集合。 ?-? ?-? ? ? ? 语法 语法 语义 语义 4 ?? 2.0 语言概述 语言概述 ? ? ? ? ? ? ? ? “?”?“?” 5 2.1 程序语言的定义程序语言的定义 P12 ? 6 2.1.1 语法 语法 ? ? ? ? ? ? ?=?+? ?0.5*x1+c 0.5?x
3、1?c?*?+? 0.5*x1+c? 7 2.1.1 语法 语法 ? ? ? ? ? ? ? ? ? ? ? 8 2.1.2 语义语义 P13 ? ? ? ?:? ? ? ? ? ?A=B? A?B?C? ?A?B ?P? ? 9 2.1.3 程序程序 P14 ? ? ? ? ? ? ? ? ? ? 程序程序 子程序子程序 或或 分程序分程序 语句语句 表达式表达式 数据引用数据引用 算符算符 函数调用 函数调用 10 ? ? ? ? ?V? 2.1.4 有关定义和记号及运算有关定义和记号及运算 P25 ? ? ? ? ?(?):?(?),? ? ? ?abc?3?|abc|=3? ?|=0?
4、 11 ? ? 2.1.4 有关定义和记号及运算有关定义和记号及运算(P25) ? ? ?(a,b,c)? ( , , )?(A,B,C)? ? ? ? ? ? ? ? ? 12 2.1.4 有关定义和记号及运算有关定义和记号及运算(P25) ? ? ?A= 1, 2,?B= 1, 2,? ?AB=|A and B ?A?n-1? ?n?An ?1?A?A? 2?AB?BA 3?A0= 4?A?n?A?n? ? 13 2.1.4 有关定义和记号及运算 有关定义和记号及运算 ?A?a? ? A0= A1=A=a An=AAn-1(n0)=aa ?A=a,b; B=c,e,d ? AB= n个a
5、ac, ae, ad, bc, be, bd 14 ? ?A?B?A?B? ?A+B (?A B)? A+B= | A 或或 B ?A+B?A?B? ?A=a,b,c?B=00,11? A+B= AB= 2.1.4 有关定义和记号及运算 有关定义和记号及运算 a,b,c,00,11 a00,a11,b00,b11,c00,c11 15 2.1.4 有关定义和记号及运算 有关定义和记号及运算 ?A?A*? A*=A0 A1 A2 ?A? ? ?A?A+? A+= A1 A2 =A*- ?A? ? 16 当我们表述一种语言时当我们表述一种语言时,无非是说明这种语言的句子无非是说明这种语言的句子,如
6、果语言如果语言 只含有有穷多个句子只含有有穷多个句子,则只需列出句子的有穷集就行了则只需列出句子的有穷集就行了,但对于但对于 含有无穷句子的语言来讲含有无穷句子的语言来讲,存在着如何给出它的存在着如何给出它的有穷表示有穷表示的问题的问题。 现在现在,我们从“产生语言我们从“产生语言”的角度出发的角度出发,给出文法和语言的形式给出文法和语言的形式 定义定义。所谓产生语言所谓产生语言,是指制定出有限个规则是指制定出有限个规则,借助它们就能产借助它们就能产 生出此语言的全部句子生出此语言的全部句子。 以自然语言为例以自然语言为例,人们无法列出全部句子人们无法列出全部句子,但是人们可以给出一但是人们可
7、以给出一 些规则些规则,用这些规则来说明(或者定义用这些规则来说明(或者定义)句子的组成结构句子的组成结构。 ? ? 2.2 文法的直观概念与语言的关系文法的直观概念与语言的关系 17 ? Young men like pop music. ? Young | pop men | music like 构成句子的构成句子的 语法规则 语法规则 18 ? ? 2.2.1 句子的语法规则句子的语法规则 ?VT =Young ,men, like, pop ,music ?VN=, , ?P= , ?S = ? ? ? ? ? ? ?VN ? ?,? ?, ? ?, ? ? ? ? 19 ?,? ?
8、 ?,? ?, ? ? ? 20 2.2.2 文法 文法 ?G? ?: ?G?S?(VN,VT,P,S)? (1) VT?; (2) VN?,?VTVN=; (3) S?, S VN; (4) P?, ? ?(?)? ? := ?VN,?(VT VN)*? ? 21 习惯记号 习惯记号 VN: ?A?B?C?S? VT: ?09?+? ? ?id?if ?: ? (VT VN)* S: ? 2.2.2 文法文法 22 2.2.2 文法 文法 ? (?) ? ? ?, ?: P 1, P 2 , P n ?: P 1| 2| n ?, i(i=1,2,n)?P? 23 ?P33 1.? ?: a?P P? b?P? ? l ?S?S * P l P?P + ? VT* 2.2.2 文法 文法 24 ? ?S?P? ? ? 2.2.3 文法产生语言 文法产生语言 25 2.2.3 文法产生语言 文法产生语言 ?: ?