第3章 文法和语言(8学时)

合集下载

第6课 第3章_文法和语言_文法概念&形式定义

第6课 第3章_文法和语言_文法概念&形式定义
共19页 11
闭包是一个重要的概念
以后,如无特别指出,我们一般用形如Σ 这样的形式,来表示长度为1的符号串的集 合;用Σ n来表示只含长度为n的符号串的集 合;用Σ *来表示含所有长度符号串的集合。 因此,一般情况下都用闭包形式Σ *来表 示一个符号串集合,它含有某种语言中所有 可能出现的符号串。
共19页
12
如何描述一种语言
如前所述,我们认为语言是一个句子的集 合。如果集合是有穷的,显然它是可以列举 的。如果集合是无穷的,那么就需要有一种 有穷的表达方式。
共19页
13
文法的定义
文法G定义为四元组(VN,VT,P,S ),其中 VN为非终结符号(或语法实体,或变量)集(一般用大写 字母表示); VT为终结符号集(一般用小写字母表示); P为产生式(也称规则)的集合; VN,VT和P是非空有 穷集。 S称作识别符号或开始符号,它是一个非终结符,至 少要在一条产生式中作为左部出现。 VN和VT不含公共的元素,即VN ∩ VT = φ 用V表示VN ∪ VT ,称为文法G的字母表或字汇表
字母表通常用
Σ 表示
共19页 9
符号串(又称作“字”)
由字母表Σ 中的元素组成的有穷序列称为该 字母表上的符号串 更为数学的归纳定义
空符号串(没有符号的符号串)ε 是Σ 上的一 个符号串 若x是Σ 上的符号串,a是Σ 内的一个元素,那 么xa是Σ 上的符号串 y是Σ 上的符号串,当且仅当它可以由上述两条 规则导出
共19页 16
例子:(算术表达式的文法定义)
G=({E,T,F},{i,+,*,(,)},P, E)
P:
EE+TT TT*FF F(E)i
共19页 17
又例:文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a-z,A-Z,0-9,} P={<标识符>→<字母> <标识符>→<标识符><字母> <标识符>→<标识符><数字> <字母>→a,„, <字母>→z <数字>→0,„, <数字>→9 S=<标识符>

编译原理课件第三章知识总结

编译原理课件第三章知识总结

第三章 文法和语言
3.1基本知识结构图 3.1基本知识结构图
语法 程序设计语言的定义 语义 文法的直观概念 文法的定义 文法 语言的定义 文法的类型 0型 1型(上下文有关) 上下文有关) 2型(上下文无关) 上下文无关) 3型(正则文法) 正则文法)
文 法 和 分析方法 句型分析 相关问题 文法的化简 文法的实用限制 文法中的空规则
3.2 知识点
3.2.1 基本概念
•程序设计语言:是一个记号系统,其完整定义包括语法和语义两个方面。 程序设计语言:是一个记号系统,其完整定义包括语法和语义两个方面。 描述语法的工具之一是文法(上下文无关文法)。程序设计语言的语义分 描述语法的工具之一是文法(上下文无关文法)。程序设计语言的语义分 )。 为两类:静态语义和动态语义。 为两类:静态语义和动态语义。 •文法:以有穷的集合刻画无穷的集合的一个工具。文法分为四种类型。 文法:以有穷的集合刻画无穷的集合的一个工具。文法分为四种类型。 •文法的形式定义:定义3.1。 文法的形式定义:定义3.1。 •规则的概念。 规则的概念。 •推导的概念。 推导的概念。 •语法树:是一种描述上下文无关文法的句型推导的直观工具。 语法树:是一种描述上下文无关文法的句型推导的直观工具。 •文法的化简。 文法的化简。

编译原理第3章文法和语言

编译原理第3章文法和语言

第3章文法和语言第1题文法G=({A,B,S},{a,b,c},P,S)其中P为:S→Ac|aBA→abB→bc写出L(G[S])的全部元素。

答案:L(G[S])={abc}第2题文法G[N]为:N→D|NDD→0|1|2|3|4|5|6|7|8|9G[N]的语言是什么?答案:G[N]的语言是V+。

V={0,1,2,3,4,5,6,7,8,9}N=>ND=>NDD....=>NDDDD...D=>D......D或者:允许0开头的非负整数?第3题为只包含数字、加号和减号的表达式,例如9-2+5,3-1,7等构造一个文法。

答案:G[S]:S->S+D|S-D|DD->0|1|2|3|4|5|6|7|8|9第4题已知文法G[Z]:Z→aZb|ab写出L(G[Z])的全部元素。

答案:Z=>aZb=>aaZbb=>aaa..Z...bbb=>aaa..ab...bbbL(G[Z])={anbn|n>=1}第5题写一文法,使其语言是偶正整数的集合。

要求:(1)允许0打头;(2)不允许0打头。

答案:(1)允许0开头的偶正整数集合的文法E→NT|DT→NT|DN→D|1|3|5|7|9D→0|2|4|6|8(2)不允许0开头的偶正整数集合的文法E→NT|DT→FT|GN→D|1|3|5|7|9D→2|4|6|8F→N|0G→D|0第6题已知文法G:<表达式>::=<项>|<表达式>+<项> <项>::=<因子>|<项>*<因子><因子>::=(<表达式>)|i试给出下述表达式的推导及语法树。

(5)i+(i+i)(6)i+i*i答案:(5)<表达式>=><表达式>+<项>=><表达式>+<因子>=><表达式>+(<表达式>)=><表达式>+(<表达式>+<项>)=><表达式>+(<表达式>+<因子>)=><表达式>+(<表达式>+i)=><表达式>+(<项>+i)=><表达式>+(<因子>+i)=><表达式>+(i+i)=><项>+(i+i)=><因子>+(i+i)=>i+(i+i)(6)<表达式>=><表达式>+<项>=><表达式>+<项>*<因子>=><表达式>+<项>*i=><表达式>+<因子>*i=><表达式>+i*i=><项>+i*i=><因子>+i*i=>i+i*i<表达式><表达式>+<项><因子><表达式><表达式>+<项><因子>i<项><因子>i<项><因子>i()<表达式><表达式>+<项><项>*<因子><因子>i<项><因子>ii第7题证明下述文法G[〈表达式〉]是二义的。

编译原理课后习题答案+清华大学出版社第二版

编译原理课后习题答案+清华大学出版社第二版
也称基地址。 SL: 静态链,指向定义该过程的直接外过程(或主程序)运行时最新数据段的基地址,
用以引用非局部(包围它的过程)变量时,寻找该变量的地址。 DL: 动态链,指向调用该过程前正在运行过程的数据段基地址,用以过程执行结束释放
数据空间时,恢复调用该过程前运行栈的状态。 RA: 返回地址,记录调用该过程时目标程序的断点,即调用过程指令的下一条指令的地
编译程序大致有哪几种开发技术?
答案:
(1)自编译:用某一高级语言书写其本身的编译程序。 (2)交叉编译:A 机器上的编译程序能产生 B 机器上的目标代码。 (3)自展:首先确定一个非常简单的核心语言 L0,用机器语言或汇编语言书写出它的编
译程序 T0,再把语言 L0 扩充到 L1,此时 L0⊂ L1 ,并用 L0 编写 L1 的编译程序 T1,再把语 言 L1 扩充为 L2,有 L1 ⊂ L2 ,并用 L1 编写 L2 的编译程序 T2,……,如此逐步扩展下 去, 好似滚雪球一样,直到我们所要求的编译程序。 (4)移植:将 A 机器上的某高级语言的编译程序搬到 B 机器上运行。
(main).
答案: 程序执行到赋值语句 b∶=10 时运行栈的布局示意图为:
1
《编译原理》课后习题答案第二章
第 3题 写出题 2 中当程序编译到 r 的过程体时的名字表 table 的内 容。
name
kind
level/val
adr
size
答案:
题 2 中当程序编译到 r 的过程体时的名字表 table 的内容为:
盛威网()专业的计算机学习网站
2
《编译原理》课后习题答案第一章
合实现方案,即先把源程序翻译成较容易解释执行的某种中间代码程序,然后集中解释执行 中间代码程序,最后得到运行结果。

第3章 文法和语言

第3章 文法和语言

3.由产生式推导句子: 有了一组产生式之后,可以按照一定的方式用它们去推导 或产生句子。 推导方法:从一个要开始的符号开始推导,即用相应产生 式的右部来替代产生式的左部,每次仅用一条产生式去进行推导。
<句子> => <主语><谓语> <主语><谓语> => <代词><谓语>
…… ……
这种推导一直进行下去,直到所有带< >的符号都由终结符号 替代为止。
<名词>
The
big
elephan t
ate
the
3.3 文法和语言的形式定义
3.3.1文法的定义
V=VN∪VT 称为文法的字汇表
定义1: 文法G=(VN,VT,P,Z) 产生式:U :: x VN :非终结符号集 U ∈VN, x∈V* VT :终结符号集 P:产生式或规则的集合 Z:开始符号(识别符号) Z∈VN
所谓文法是在形式上对句子结构的定义与描述,而未
涉及语义问题。
4.语法树:我们用语法树来描述一个句子的语法结构。
语法成分(在形式 语言中又称“非终 结符”) <主语>
<冠词> <形容词 >
<句子>
单词符号(在形 式语言中又称 <谓语> “终结符号”) <动词> <宾语> <冠词> <名词> peanu t
<句子> => <主语><谓语>
<主语>::=<冠词><形容词><名词> <冠词> ::=the <形容词>::=big <谓语>::=<动词><宾语> <动词>::=ate <宾语>::=<冠词><名词>

编译原理第三章 文法和语言

编译原理第三章 文法和语言
A={A,B},B={C,D} AB={AB,AD,BC,BD}
方幂:A的n次方幂就是将n个A相乘。 字母表的闭包与正闭包:
字母表A的闭包是A上的所有符号串(包括空字符串) 的集合。* 字母表A的正闭包是A上的所有的非空符号串的集合。 + 无穷集合
3.3 文法和语言的形式定义
使用3.2的术语对3.1中描述汉语句子的规 则加以形式化,然后给出文法和语言的形 式定义。 规则也称为重写规则、产生式或生成式。 规则形如或者::=的(,)有序 对,其中是某字母表V的正闭包V+中的一 个符号,是V*中的一个符号。称为规则 的左部,称为规则的右部。
3.3 文法和语言的形式定义
推导的概念:如果是文法G的规则, 和是V*中的任意符号,若有符号串v和w, 如果存在一个推导序列 定义3.2--3.4 u0=>u1 =>…=>un 并且u0=v,un=w,那么我们说v可以推导到w, 或者w规约到v。
若n=1记作v=>w,称为直接推导; 若n1记作+ => ,称为长度为n(n1)的推导; 若n0记作* => ,称为长度为n(n0)的推导;
L(G[Z])={anbn|n2}
3.4 文法和语言的分类
文法分类的原因: 对计算机科学有深刻的影响,我们在以后 的学习中将会体会到。 Chomsky文法的定义: (VN,VT,P,S)
该定义是我们前面讲的定义的一个更加形式化的表达。 在这个定义中,文法规则的左部可以是一个非空符号 串。 Chomsky文法被分为四类,我们主要用2型和3型文法。 几类文法的差异是对产生式施加不同的限制
一些基本原理、概念
形式化的方法:用一整套带有严格规定的符号体系 来描述问题的方法。
例:s=2*3.1415*r*(r+h)的非形式化描述

【考研计算机专业课】天津大学 编译原理讲义 第三章文法和语言


L(G)={anbncn|n≥1}
2型文法也称上下文无关文法,用于描述多数 现今程序设计语言的语法结构。
例,文法G =({S},{a,b},P,S) P定义为: S→aSb|ab L(G)={anbn|n≥1}
3型文法也称正则文法,由其产生的语言叫做 正规语言,即正规集。
例,文法G =({S},{0,1},P,S) P定义为: S→0S|1S|0|1 L(G)=(0|1)*
例,文法G的产生式为: E→T|E+T T→F|T*F F→(E)|i E E+T E+F E+i3 T+i3 T*F+i3 T*i2+i3 F*i2*,i3 ,i1*i2 ,i1*i2+ i3都是句型i1*i2+i3的短语。
i1 ,i2,i3 均为直接短语。
i1是句柄。
i2+i3是否句型i1*i2+i3的短语?
+ 不是,尽管有E i2+i3,但不存在从E到i1*E的推导。
3.1.2 文法的Chomsky分类
0型文法(短语结构文法):
设文法G=(VN,VT,P,S) ,其产生式形式为: α →β α ∈V*VNV* ,β ∈V*
如果对 0 型文法分别加上以下的第 i 条限制,则我们 就得到 i 型文法。 1.G的任何产生式α →β 均满足|α |<|β |,S→ε除外;
1. 文法是描述语言的语法结构的形式规则(即 语法规则)。
文法是一个四元组: G[S]=(VN,VT,P,S) VN为非终极符集合; VT为终极符集合; VN∩VT =Ф ; 一般令V= VN∪VT ,V中的符号称为文法符号; P为产生式集合; P中的每个产生式写为: α →β ;α ∈V*VNV*, β ∈V* S为开始符号。

编译原理(清华)第三章文法和语言


例 文法G: S→0S1,S→01 有直接推导: 0S1 00S11 ( S→0S1 ) 00S11 000S111 ( S→0S1 ) 000S111 00001111 ( S→01 ) S 0S1 ( S→0S1 )
推导和归约 若存在v=w0 w1 ... wn=w ,(n>0) 则称v推导出w,或w归约到v,记为v=+>w 若有v =+>w,或v=w,则记作v=*>w
2. 符号串 – 定义:由字母表中的符号组成的任何有穷序列 – 例: 0,00,10是字母表∑={0‚1}上的符号串 a,ab,aaca是Α={a‚b,c}上的符号串 – 在符号串中,符号是有顺序的,顺序不同,代 表不同的符号串,如:ab和ba不同 – 不含任何符号的符号串称为空串,用ε表示 注意:{ε}并不等于空集合{ } – 符号串长度: 符号串中含有符号的个数 如: |abc|=3 | ε|=0
3.3 文法和语言的形式定义
1.文法的定义 2.文法的简化表示法 3.推导与归约 4.句型、句子、语言的定义 5.文法的等价
1.文法的定义
产生式(规则) 产生式是一个有序对(α,β),通常写作 α→β(或α::=β ) 文法定义: 文法G(Grammar)定义为四元组(VN,VT,P,S) VN (Nonternimal):非终结符集 VT (Terminal):终结符集 P (Production): 产生式(规则)集合 S: 开始符号或识别符号
第三章
文法和语言
学习目标: 掌握:自上而下与自下而上的分析方法 理解:文法的形式定义,推导,归约,句 型,句子,语言,上下文无关文法,规范 句型,语法树,短语,直接短语,句柄 了解:文法的类型,文法使用中的限制, 文法的二义性

编译原理文法和语言


<谓语>::=<动词><直接宾语>
<动词>::=是|学习
<直接宾语>::=<代词>|<名词>
§3.2 文法和语言的形式定义
一、文法的直观理解
3.由产生式推导句子 推导方法:从一个要识别的符号开始推导,
即用相应产生式的右部来替代产生式的左部, 每次仅用一条产生式去进行推导。
例:给定一组语法规则,考察一个句子: “我是大学生”的推导过程。
§3.2 文法和语言的形式定义
三、推导和归约
1.直接推导/直接归约
如α→β是文法G的产生式,γ和δ∈V*, 若有 v,w满足:v=γαδ,w= γβδ, 其中 则称v直接推导到 w,也称w直接归约到v,记作 v w
例2:文法G[S]: S→0S1, S→01 若v=S,w=0S1, 有直接推导S0S1
§3.2 文法和语言的形式定义
四 、句型、句子和语言
3. 语言
文法G生成的语言记为L(G),它是文法G 的一切句子的集合:
L(G)={x|S * x,且x ∈VT*}
例:G[S]: S→0S1, S→01 S 0S1 00S11 0n-1S1n-1 0n1n L(G)={0n1n|n≥1}
§3.2 文法和语言的形式定义
<谓语>
<代词> 我
<动词> 是
<直接宾语> <代词>
大学生
§3.2 文法和语言的形式定义
二、文法的形式定义
其中: ① 非终结符号:出现在
定义: 文法G[S]定义为一个四元产能组生推,式出的符左号部或或符右号部串,,且
VN :G[非S]终=(结V符N,号V集T,P,S)用分②来。终表结示 符语号言:的不语出法现成在

chapter3文法和语言.ppt

19
例:算术表达式的文法 递归定义——中缀表示
标识符(id)(常数、变量)是表达式(E); 表达式加一个表达式是表达式; 表达式乘一个表达式是表达式; 表达式加上括号后是表达式;
20
例:算术表达式的文法
考虑简单算术表达式组成的语言
G =({id,+,*,(,)},{E},P,E)
8
3.2 符号和符号串
符号串s的头、尾、固有头、固有尾(前缀、后缀、 真前缀、真后缀): 如果s=xy是一符号串,则x是s 的头,y是s的尾;如果x非空,则y是固有尾,如果y 非空,则x是固有头。对于符号串banana
ε b ba ban bana banan banana均是前缀,且前六个为 真前缀
4
形式语言与自动机理论的产生
语言学家Chomsky最初从产生语言的角度研究语言。
1956年,通过抽象,他将语言形式地定义为是由一个字母 表中的字母组成的一些串的集合。可以在字母表上按照一定 的规则定义一个文法(Grammar),该文法所能产生的所 有句子组成的集合就是该文法产生的语言。
克林(Kleene)在1951年到1956年间,从识别语言 的角度研究语言,给出了语言的另一种描述。
关于语言 符号和符号串 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明
2
3.1 关于语言
语言是由句子组成的集合,是由一组符 号串所构成的集合。
汉语--所有符合汉语语法的句子的全体 英语--所有符合英语语法的句子的全体 程序设计语言--所有该语言的程序的全体
P: E→E + E

E→E * E
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
相关概念
(5) 符号串的方幂 : 对符号串 x, 把它自身连接 n 次得到符号串 z, z=xxx… 记作: z=xxx…x,记作:z=xn , x0=ε , x1=x , x2=xx ,……
例如:x=01 ,则x0=ε x=01
x1=01 x2=0101 x3=010101
(6)符号串集合:集合A中的一切元素都是某字母表上的符号串,则称 符号串集合:集合A中的一切元素都是某字母表上的符号串, 为该字母表上的符号串集合。 A为该字母表上的符号串集合。
判断下列句子是否是该语言的句子?(用规则去推导句子) 判断下列句子是否是该语言的句子?(用规则去推导句子) ?(用规则去推导句子
1. 2. 3. 4.
我是大学生 我大学生是 他学习英语 英语学习他
5
3.2 符号和符号串
字母表 Σ:元素的非空有穷集合。(又称为符号集) 元素的非空有穷集合。(又称为符号集) 非空有穷集合。(又称为符号集 符号:字母表中的元素。 符号:字母表中的元素。
文法的简写形式: 文法的简写形式: • 只写出产生式 • G写成G[S],S是开始 写成G[S] G[S], 符号 或 第一条产生式左部 是开始符号 • VN用尖括号括起 或 VN用尖括号括起 大写字母 VT不用尖括号括起 不用尖括号 VT不用尖括号括起 或 小写字母
例1的简写形式: 的简写形式: G: S 0S1 S 01 或 G[S]: S 0S1 S 01
1
3.1 文法的直观概念
语言: 语言: 是由句子组成的集合,是一组记号所构成的集合。 是由句子组成的集合,是一组记号所构成的集合。 –汉语 —— 所有符合汉语语法的句子的全体 –英语 —— 所有符合英语语法的句子的全体 –程序设计语言 —— 所有该语言的程序的全体
2
语言研究
研究语言 :
每个句子构成的规律 每个句子的含义 每个句子和使用者的关系 语言研究的三个方面: 语言研究的三个方面: Syntax: 语法 Syntax:表示构成语 言句子的各个记号之间的 组合规律。 组合规律。 Semantics: 语义 Semantics:表示按 照各种表示方法所表示的 各个记号的特定含义 含义。 各个记号的特定含义。 (各个记号和记号所表示 的对象之间的关系) 的对象之间的关系) Pragmatics: 语用 Pragmatics:表示在 各个记号所出现的行为中, 各个记号所出现的行为中, 它们的来源 使用和影响。 来源、 它们的来源、使用和影响。
符号串:由字母表Σ中的符号组成的任何有穷序列 符号串:由字母表Σ中的符号组成的任何有穷序列 空符号串ε 没有符号的符号串 符号的符号串) 空符号串ε(没有符号的符号串)是Σ上的符号串 符号串不仅表示由哪些符号组成 还表示符号的顺序 符号组成, 符号串不仅表示由哪些符号组成,还表示符号的顺序
例如: Σ={0,1} 例如: ε,0,1,00,01,10,11,…,1011,… ε,0,1,00,01,10,11,…,1011,… 都是Σ上的符号串 01 ≠ 10
14
+ 和 * ⇒ ⇒ 若存在v=w 若存在v=w0 ⇒ w1 ⇒... ⇒ wn=w , (n>0) 则称 v 推导出 w(推导长度为n), 推导长度为n 或称 v 产生 w 或称 w 归约到 v + 记作 v ⇒ w 若有v ⇒ w或v=w, 若有v + w或v=w,则记为 v
第3章 文法和语言
学习要点: 学习要点: 符号和符号串的相关概念 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明 学习目的: 学习目的: 掌握文法和语言的相关概念, 掌握文法和语言的相关概念,为以后的词 法分析、语法分析、语义分析等做出准备。 法分析、语法分析、语义分析等做出准备。
例如:Σ={0,1} A ={0,1,00,01,10…,10001,……} 是 Σ={0 ={0 00,01,10… 10001,……}
B ={10,11,101} ={10 11,101} 10, C ={1a,11011,b11} ={1a,11011,b11 11011,b11} 是 不是
(7)符号串集合的乘积:AB={xy|x∈A且y∈B} 符号串集合的乘积:AB={xy|x∈A且
例如:A={01,10} B={ab,cd} AB={01ab,10ab,01cd,10cd} A={01 10} 01, AB={01ab,10ab,01cd,10 01ab,10ab,01cd,10cd}
注意: ห้องสมุดไป่ตู้意: “ab01”不在 AB 中 ab01 01” {ε}A=A{ε}=A
8
相关概念
13
S→01 (使用规则S→01) 使用规则S→01) S→01 使用规则S→0S1 S→0S1) (使用规则S→0S1) 使用规则S→0S1 S→0S1) (使用规则S→0S1)
文法G: 例4 文法G: 标识符>→<字母> >→<字母 <标识符>→<字母> 标识符>→<标识符><字母> >→<标识符><字母 <标识符>→<标识符><字母> 标识符>→<标识符><数字> >→<标识符><数字 <标识符>→<标识符><数字> 字母>→ >→a <字母>→a … 字母>→ >→z <字母>→z 数字>→0 <数字>→0 … 数字>→9 <数字>→9 指出下面直接推导所使用的规则: 指出下面直接推导所使用的规则: 标识符><字母> ><字母 <标识符> ⇒ <标识符><字母> 标识符> 字母><字母> 数字> ><字母 <标识符><字母><数字> ⇒ <字母><字母><数字> 标识符><字母> 数字> ><字母 abc<数字> abc<数字> ⇒ abc5 数字
6
相关概念
(1)符号串的长度:符号串x中符号的个数,用|x|表示 符号串的长度:符号串x中符号的个数, x|表示
例如:x=aabc 例如: 则|x|=4 x|=4
(2)空符号串:ε 空符号串:
则 |ε|=0 ε|=0
(3)头、尾、固有头、固有尾 固有头、 z=xy
• x是z的头;y是z的尾 非空, 固有头; 非空, 固有尾。 • 若y非空,x是z的固有头;若x非空,y是z的固有尾。
(8) 集合的闭包 : 指定字母表 V 之后 , 可用 V * 表示 V 上所 指定字母表V之后,可用V 表示V 有有穷长度的串的集合。 有有穷长度的串的集合。 V+ 为V的正闭包。
V* = V0∪ V1 ∪ … ∪ Vn … V+ = V1 ∪ … ∪ Vn … 则:V* = V0 ∪ V+ V+ = V V*= V* V V+ = V* - {ε}
例如:符号串abc 例如:符号串abc 头:ε,a,ab,abc 固有头:ε,a,ab 固有头: 例如:x=01 x=01
y=abc
尾:ε,c,bc,abc 固有尾:ε,c,bc 固有尾:
则xy=01abc xy=01 01abc yx=abc01 yx=abc01
(4)符号串的连接:x,y的连接即xy(把y的符号写在x符号后面) 符号串的连接:x,y的连接即xy( 的连接即xy 的符号写在x符号后面) 注意:εx=xε=x 注意:
4
文法举例:以自然语言为例, 文法举例:以自然语言为例,用 EBNF 描述语言
〈句子〉::= 〈主语〉〈谓语〉 句子〉 主语〉〈谓语〉 〉〈谓语 主语〉 代词〉 名词〉 〈主语〉::= 〈代词〉|〈名词〉 代词〉 〈代词〉::= 你 | 我 | 他 名词〉 〈名词〉::= 王明 | 大学生 | 工人 | 英语 谓语〉 动词〉〈直接宾语〉 〉〈直接宾语 〈谓语〉::= 〈动词〉〈直接宾语〉 动词〉 〈动词〉::= 是 | 学习 直接宾语〉 代词〉 名词〉 〈直接宾语〉::= 〈代词〉|〈名词〉
研究程序设计语言: 研究程序设计语言:
每个程序构成的规律 每个程序的含义 每个程序和使用者的关系
3
形式语言 形式语言 与 文法
如果不考虑语义和语用, 只从语法 这一侧面来看语言, 如果不考虑语义和语用 , 只从 语法 这一侧面来看语言 , 语法这一侧面来看语言 形式语言。 这种意义下的语言称作形式语言 这种意义下的语言称作形式语言。 形式语言抽象地定义为一个数学系统。 形式语言抽象地定义为一个数学系统。 “ 形式 ” 是指 : 语言的所有规则只以符号串出现的方 形式” 是指: 式来陈述。 式来陈述。 文法: 描述词法 语法规则的工具 文法 : 描述 词法 、 语法规则 的工具 。 用一组规则严格 词法、 的工具。 定义句子的结构, 即对含有“ 无穷句子” 定义句子的结构 , 即对含有 “ 无穷句子 ” 的语言进行 有穷的表示” “有穷的表示”。
其中, 其中, – VN 、VT 和 P 是非空有穷集 – S∈VN ,并且 S 至少在一条规则中作为左部出现 – VN ∩ VT =φ – V = VN∪VT ,V 称为文法G的字母表(字汇表) 称为文法G的字母表(字汇表)
11
文法G= G=( 例1 文法G=(VN,VT,P,S) VN = { S } VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号 文法G= G=( 例2 文法G=(VN,VT,P,S) {标识符 字母,数字} 标识符, VN = {标识符,字母,数字} {a,b,c,…x,y,z,0,1, x,y,z,0,1,…,9} VT = {a,b,c, x,y,z,0,1, ,9} {<标识符>→<字母 标识符>→<字母> P = {<标识符>→<字母> 标识符>→<标识符><字母> >→<标识符><字母 <标识符>→<标识符><字母> 标识符>→<标识符><数字> >→<标识符><数字 <标识符>→<标识符><数字> 字母>→a,…, <字母>→z >→a, 字母>→ <字母>→a, , <字母>→z 数字>→0, >→0,…, <数字 数字>→9 <数字>→0, , <数字>→9 } <标识符 标识符> S = <标识符>
相关文档
最新文档