编译原理 形式语言
编译原理形式语言

编译原理形式语言编译原理是计算机科学与技术领域中的一门重要课程,它研究的是将高级语言程序转换为计算机可以理解和执行的可执行代码的过程。
在学习编译原理的过程中,我们必然要涉及到形式语言的概念。
形式语言是指用来描述计算机语言、编程语言、自然语言或者其他领域中的形式系统的语言。
形式语言可以分为四种类型:无限制文法、上下文有关文法、上下文无关文法和正则文法。
这四种类型的文法按照规则严格程度从高到低依次排列,其中无限制文法最为灵活,正则文法最为严格,限制最多。
无限制文法(Unrestricted Grammar)是最灵活最强大的文法类型,也是图灵机的模型之一、它的产生式规则形式可以是 A -> α,其中 A是一个非终结符号(可以通过其他规则推导出其他符号或者字符串),α 是一个终结符符号或非终结符符号的有限序列。
无限制文法没有任何限制,可以描述任意的形式语言。
上下文有关文法(Context-Sensitive Grammar)是介于无限制文法和上下文无关文法之间的一种文法类型。
它的产生式规则形式可以是αAβ -> αγβ,其中α、β、γ 是终结符号或非终结符号的有限序列,A 是一个非终结符号。
上下文有关文法要求产生式规则中的左右上下文必须匹配。
上下文有关文法可以描述一些复杂的结构,但与无限制文法相比,它的限制更多一些。
上下文无关文法(Context-Free Grammar)是应用最广泛的一种文法类型,它的产生式规则形式可以是 A -> α,其中 A 是一个非终结符号,α 是一个终结符号或非终结符号的有限序列。
上下文无关文法的产生式规则没有左右上下文的限制,只要符合规则形式即可。
上下文无关文法广泛应用于编译器的语法分析阶段,例如语法分析器常采用的 LL(1) 文法和 LR(1) 文法。
正则文法(Regular Grammar)是最严格、最受限制的一种文法类型,它的产生式规则形式可以是 A -> aB 或 A -> a,其中 A 和 B 是非终结符号,a 是终结符号。
编译原理一些习题答案

第2章形式语言基础2.2 设有文法G[N]: N -> D | NDD -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9(1)G[N]定义的语言是什么?(2)给出句子0123和268的最左推导和最右推导。
解答:(1)L(G[N])={(0|1|2|3|4|5|6|7|8|9)+} 或L(G[N])={α| α为可带前导0的正整数}(2)0123的最左推导:N ⇒ ND ⇒ NDD ⇒ NDDD ⇒ DDDD ⇒ 0DDD ⇒ 01DD ⇒ 012D ⇒ 0123 0123的最右推导:N ⇒ ND ⇒ N3 ⇒ ND3 ⇒ N23 ⇒ ND23 ⇒ N123 ⇒ D123 ⇒ 0123268的最左推导:N ⇒ ND ⇒ NDD ⇒ DDD ⇒ 2DDD ⇒ 26D ⇒ 268268的最右推导:N ⇒ ND ⇒ N8 ⇒ ND8 ⇒ N68 ⇒ D68 ⇒ 2682.4 写一个文法,使其语言是奇数的集合,且每个奇数不以0开头。
解答:首先分析题意,本题是希望构造一个文法,由它产生的句子是奇数,并且不以0开头,也就是说它的每个句子都是以1、3、5、7、9中的某个数结尾。
如果数字只有一位,则1、3、5、7、9就满足要求,如果有多位,则要求第1位不能是0,而中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个文法分3部分来完成。
分别用3个非终结符来产生句子的第1位、中间部分和最后一位。
引入几个非终结符,其中,一个用作产生句子的开头,可以是1-9之间的数,不包括0,一个用来产生句子的结尾,为奇数,另一个则用来产生以非0整数开头后面跟任意多个数字的数字串,进行分解之后,这个文法就很好写了。
N -> 1 | 3 | 5 | 7 | 9 | BNB -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | B02.7 下面文法生成的语言是什么?G1:S->ABA->aA| εB->bc|bBc G2:S->aA|a A->aS解答:B ⇒ bcB ⇒ bBc⇒ bbccB ⇒ bBc⇒ bbBcc ⇒ bbbccc……A ⇒εA ⇒ aA ⇒ aA ⇒ aA ⇒ aaA ⇒ aa……∴S ⇒ AB ⇒ a m b n c n , 其中m≥0,n≥1即L(G1)={ a m b n c n | m≥0,n≥1} S ⇒ aS ⇒ aA ⇒ aaS ⇒ aaaS ⇒ aA ⇒ aaS ⇒ aaaA ⇒aaaaS ⇒ aaaaa ……∴S ⇒ a2n+1 , 其中n≥0即L(G2)={ a2n+1 | n≥0}2.11 已知文法G[S]: S->(AS)|(b)A->(SaA)|(a)请找出符号串(a)和(A((SaA)(b)))的短语、简单短语和句柄。
编译原理形式语言题答案 (2) (1)

第2章形式语言1.试分别构造产生下列语言的文法:(1){a n#b n|n≥0}∪{c n#d n|n≥0};(2)任何不是以0打头的所有奇整数所组成的集合。
答:(1) 对应文法为G(S)=({S,X,Y},{a,b,c,d,#}, {S→X, S→Y, X→aXb|#, Y→cYd|# },S)(2) G(S)=({S,A,B,I,J},{0,1,2,3,4,5,6,7,8,9},{S→J|IBJ, B→0B|IB|ε, I→J|2|4|6|8, J→1|3|5|7|9},S)2.对于下列的文法S→AB|c A→bA|a B→aSb|c试给出句子bbaacb的最右推导。
答:S=>AB=>AaSb=> Aacb=>bAacb=>bbAacb=>bbaacb3.已知文法G[S]: S->(AS)|(b)A->(SaA)|(a)请找出符号串(a)和(A((SaA)(b)))的短语、简单短语和句柄。
答:因为S 不能⇒ (a), 所以(a)不是文法的句型。
没有短语、直接短语和句柄。
因为S ⇒(AS) ⇒(A(AS)) ⇒(A((SaA)S)) ⇒(A((SaA)(b))),所以(A((SaA)(b)))是文法的句型。
短语:(A((SaA)(b))),((SaA)(b)),(SaA),(b)直接短语:(SaA),(b)句柄:(SaA)S( A S )( A S )( S a A ) ( b )4.试描述由下列文法所产生的语言的特点:(1)S→10S0 S→aA A→bA A→a(2)S→aSS S→a答:(1) 本文法构成的语言集为:L(G)={(10)n ab m a0n|n,m≥0}。
(2)由L(G)={a2n-1|n≥1}可知,该语言特点是:产生的句子是奇数个a。
附加题:试证明文法S→AB|DC A→aA|a B→bBc|bc C→cC|c D→aDb|ab为二义性文法。
编译原理-2-形式语言与自动机-I

(function1) (paras) (statements)
(function2) (paras) (statements)
(function3) (paras) (statements) … (functionn) (paras) (statements) (functioni actual-paras) (functioni actual-paras) (functioni actual-paras) …
符号串的长度 如果某符号串x中有m个符号,则称其 长度为m,表示为|x|=m,如001110的长度是6。 空符号串,即不包含任何符号的符号串,用ε表示, 其长度为0,即|ε|=0。
2014-6-13 21
符号串的头,尾,固有头和固有尾:如果z=xy是一符号 串,那么x是z的头,y是z的尾,如果x是非空的,那 么y是固有尾;同样如果y非空,那么x是固有头。 举个例子:设z=abc,那么z的头是ε ,a,ab,abc,除abc外, 其它都是固有头;z的尾是ε ,c,bc,abc,z的固有尾是 ε ,c,bc。 当对符号串z=xy的头感兴趣而对其余部分不感兴趣 时,采用省略写法:z=x…; 如果只是为了强调x在符号串z中的某处出现,则可 表示为:z=…x…;符号t是符号串z的第一个符号, 则表示为z=t…。
语法 -- 表示构成语言句子的各个记号之间的组合规律 语义 -- 表示各个记号的特定含义。(各个记号和记号
所表示的对象之间的关系)
语用 --表示在各个记号所出现的行为中,它们的来源、
使用和影响。
每种语言具有两个可识别的特性,即语言的形式 和该形式相关联的意义。 语言的实例若在语法上是正确的,其相关联的意 义可以从两个观点来看,其一是该句子的创立 者所想要表示的意义,另一是接收者所检验到 的意义。这两个意义并非总是一样的,前者称 为语言的语义,后者是其语用意义。幽默、双 关语和谜语就是利用这两方面意义间的差异。
2021-2022学年编译原理之形式语言基础(2)

2.4 两种特性文法
设有文法:G(Z)=(VN,VT,Z,P)
2.4.1 递归文法
【定义】
设 若
AA∈=+V>N,xAxy,,y:∈称(V文N+法VT)具*,有则递;归性;
特别: 若 A -> A ,称文法具有直接左递归性; A -> A ,称文法具有直接右递归性。
如:G1(S): S -> S b | a --- 直接左递归文法;
∵ S->a(A|)bc
∴ S->aAbc|abc
∵ A->d(A|)(B|)e ∴ A->dABe|dBe|dAe|de
∵ B->(A|)
∴ B->A
※ 综合 G`(S) : S->aAbc|abc|bS A->dABe|dBe|dAe|de B->A|b
2.5.2 文法变换方法3
Ⅲ 常用的三种文法变换方法:
D -> f ; G -> b ;
⒊ 删除不可用产生式: ∵ VUS={ S,B,A }; ∴ 应删除 D,G(连同其产生式)
※ 整理后得:G``(S):
S -> Be A -> Ae | e B -> Af
2.5.2 文法变换方法2
Ⅱ 删除 产生式
※假定 文法 G(Z) ; 【算法】
∈ L(G)
2.5.2 文法变换方法
在实际工作中,人们总是希望定义一种语言的 文法尽可能地简单。另外,某些常用的语法分析技 术也会对文法提出一定的要求或限制;为了适应上 述要求,有时需要对文法进行必要的改写。当然改 写后的文法要与原文法等价—通常称为文法变换。
这里重点介绍三类变换:
⑴ 删除无用的产生式(文法的化简); ⑵ 删除ε产生式; ⑶ 常用的三种文法变换方法:
编译原理2文法和形式语言

2.3.3 语言的形式定义 1.直接推导 直接推导 是一文法, 直接推出x 令G是一文法,我们从 是一文法 我们从xAy直接推出 α y,即xAy ⇒ x α y,仅 直接推出 , , A → α是G的一个规则且 ∈ (VN∪ VT)*,也就是说从符号串 的一个规则且x,y 的一个规则且 也就是说从符号串 xAy直接推出 α y仅使用一次规则。 直接推出x 仅使用一次规则。 直接推出 仅使用一次规则 例:设有文法:G[E] 设有文法: 1、E → E+T|T 、 2、T → T∗F|F 、 ∗ 3、F →(E)|i 、 对从起始符号E到句子 到句子i+i∗ 的直接推导如下 对从起始符号 到句子 ∗i的直接推导如下 : E⇒E+T⇒T+T⇒F+T⇒i+T⇒i+T∗F⇒i+F∗F ⇒ ⇒ ⇒ ⇒ ⇒ ∗ ⇒ ∗ ⇒i+i∗F⇒i+i∗i ∗ ⇒ ∗
8)符号串的幂 ) 定义: 是字母表上的符号串, 的幂运算为: 定义:设x是字母表上的符号串,则x的幂运算为: 是字母表上的符号串 的幂运算为 x0=ε, x1=x, x2=xx, … … ,xn=xn-1x(=x xn-1) ε , , 9)符号串集合的幂:(集合的相乘) )符号串集合的幂:(集合的相乘) :(集合的相乘 定义: 为符号串集合, 定义:若A为符号串集合,则符号串集合的幂为: 为符号串集合 则符号串集合的幂为: A0= {ε } , A1=A ,A2=AA,… … , An-1=An-2A, ε , , An=An-1A(=AAn-1), ( 例:若A={a,b} , 则 A1=A={a,b}; , ;
2.3 文法和语言的形式定义 Σ:为某一字母表, L:一个语言, L⊂Σ 为某一字母表, :一个语言, 字母表 ⊂Σ* ⊂Σ 2.3.1 形式语言 1.定义:序列的有穷集合。具体地说每个形式语言都是某个字母 定义:序列的有穷集合。 定义 表上按某种规则构成的所有符号串的集合, 表上按某种规则构成的所有符号串的集合,反之任何一个字母 表上符号串的集合均可以定义一个形式语言。 表上符号串的集合均可以定义一个形式语言。 2.表示方法: 表示方法: 表示方法 1)枚举法。当语言为有穷集合时使用。 )枚举法。当语言为有穷集合时使用。 2)文法描述。当语言为无穷集合时使用。 )文法描述。当语言为无穷集合时使用。
编译原理-2-形式语言与自动机-I
正则语言的定义和正则表达式
正则语言
正则语言是由正则表达式描述的形式语言。
正则表达式
正则表达式是一种字符串匹配模式,用于描述正则 语言的结构。
正则表达式与正则语正则语言的等价性
正则表达式是一种用于匹 配字符串的模式,它由各 种字符和操作符组合而成。
正则表达式和正则语言是 等价的,它们可以互相表 示和转换。
编译原理-2-形式语言与 自动机-I
在编译原理的学习中,了解形式语言与自动机是非常重要的第一步。本节将 讨论形式语言的定义和分类,以及自动机的定义和有限自动机的概念。
形式语言的定义和分类
形式语言
形式语言是一种用于表示计算机语言结构的抽象系统,通常由字符串构成。
形式语言的分类
形式语言可以分为三类:正则语言、上下文无关语言和上下文相关语言。
正则语言
正则语言是由正则表达式描述的语言,它们具有简单的结构和有限的规则。
自动机的定义和有限自动机
1
自动机定义
自动机是一种抽象的计算模型,它根据
有限自动机
2
输入的符号序列转移状态并产生输出。
有限自动机是一种最简单的自动机模型,
它包含有限个状态和输入符号。
3
状态转移
有限自动机通过在状态之间进行转移来 处理输入符号序列。
3 应用广泛
正则表达式在文本处理、 编译器和搜索引擎等领域 有着广泛的应用。
结论和要点
重要性
了解形式语言和自动 机是学习编译原理的 基础。
分类
形式语言分为正则语 言、上下文无关语言 和上下文相关语言。
等价性
正则表达式和正则语 言是等价的,可以互 相转换。
应用
正则表达式在多个领 域中有广泛的应用, 如文本处理和编译器 设计。
编译原理实践2—形式语言基本知识
3.简单辨认算法
简单辨认算法(LL(1)分析法):采用自 顶向下的分析方法,语句分析的每个步 骤仅允许由当时的分析状态(追踪的目 标)和下一个要读入的符号决定,不允 许有回溯的步骤。 LL(1) :第一个L是指对输入符号串的分 析总是自左(left)向右,第二个L是指对 生成式目标的追踪也是自左(left)向右, 括号中的1是指不论目标符号的追踪,还 是对终结符号的读入都只是一个符号, 从而决定生成规则的选择。
20世纪50年代语言学家noamchomsky乔姆斯基提出了一个用来描述语言的数学系统把用一组数学符号和规则来描述语言的方式叫做形式描述而把能用数学符号和规则描述的语言称为形式语言
编译原理实践 --形式语言基本知识
编译过程的核心就是翻译,这是一个 十分复杂的信息加工过程,其加工的 对象是用某种高级语言编写的程序。 对于一个英文翻译来说,首先必须对 英文有很深的了解,掌握英文的语法 和词汇,才能进行翻译。而编译程序 的任务就是将高级语言编写的程序翻 译成机器语言程序,因此,在学习和 掌握编译技术之前,就需要对高级语 言有深刻的了解。
自底向上:从所给符号串x开始 ,在其中寻找与文法的某条规则 右部相匹配的子串,并用该规则 的左部取代此子串,重复此过程 ,步步向上规约,最后设法将符 号串x规约到文法的起始符号Z。 本课程对自底向上不做进一步讨 论
自顶向下的语法分析的一般过程
例:文法G: S → cAd A → ab A→ a 识别输入串w=cabd是否为该文法的句子
编译原理实践 --语句分析
编译原理
2.3 文法和语言的分类 一、Chomsky对文法的定义 Chomsky把文法定义为一四元组G=(VN ,VT ,P, S),其中VN 为非终结符号集合,VT 为终结结符号集合, P为规则的集合,S为识别符号。V= VN VT 二、Chomsky对文法的分类 (1)0型文法和0型语言 如果文法G每一条规则形如,其中V+且至少含 有一终结符号,V*,则G是一个0型文法,其对应的语 言为0型语言。 0型文法又称为短语文法。0型文法相当于图灵机,即0型 文法均是图灵可计算的(递归可计算的),反之亦然。
符号串的长度 符号串中包含符号的个数称为符号串的长 度,用表示。如abc=3,=0。 符号串连结 设和是字母表上的符号串,把的所有符 号依次写在之后所得的符号串称为和的连结,记为 。 如=ab,=bc,则=abbc。 显然字母表上的任一符号串与的连结仍然是,即 有 == 符号串集合的乘积 设A、B为两个符号串集合,其乘积 为AB={A,B} 如,若A={ ab,bc},B={ ac,cb},则 AB={abac, abcb,bcac,bccb} 特别有:{}A=A{}=A
2.2 文法语言的形式定义 在给出文法和语言的形式定义之前,我们用自然 语言直观地理解一下文法的概念。 我们知道汉语是所有句子构成的集合,而句子又 是汉字构成的符号串,但人们无法列出所有的句子, 故我们必须给出构成句子的一些规则,用这些规则 来定义句子的组成结构,比如:“ young men like network”,是自然语言的一个句子。我们可以用下 列规则来定义该句子。 <句子><主语><谓语> <主语><形容词><名词><代词> <谓词><动词><宾语> <宾语><名词> <形容词>young
编译原理形式语言
通过实际例子和应用场景, 帮助理解形式语言的应用 和实际意义。
编译原理概述
什么是编译原理?
简要概述编译原理的定义和基 本概念。
编译器的作用
介绍编译器的作用和重要性, 并解释为什么需要理解编译原 理。
编译过程
探索编译原理的基本过程,包 括词法分析、语法分析、语义 分析等。
词法分析器
词法分析的作用
解释词法分析器在编译过程中的 作用和目标。
编译原理形式语言
探索形式语言的定义、分类以及编译原理的概述。了解词法分析器、语法分 析器、语义分析器、中间代码生成、代码优化和目标代码生成的工作原理。
形式语言的定义与分类
1 什么是形式语言?
探索形式语言的概念和作 用,以及其在编译原理中 的重要性。
2 形式语言的分类
3 上下文有关语言, 并解释它们在编译原理中 的应用。
优化和错误处理
探索语法分析器的优化技术和错误处理方法,提 高编译过程的效率和准确性。
语义分析器
1
语义分析的概念
解释语义分析器的作用和目标。
2
类型检查
介绍类型检查的概念和在语义分析中的应用,确保程序的类型安全性。
3
符号表
探索符号表的重要性和在语义分析器中的作用,帮助进行语义分析。
中间代码生成
中间代码的作用
正则表达式
介绍正则表达式的基本概念和在 词法分析器中的应用。
分词与标记化
解释分词和标记化的过程,以及 词法分析器如何生成词法单元。
语法分析器
语法规则
解释语法规则的作用和如何定义语法规则。
语法树
解释语法树的概念和构建过程,以及在编译原理 中的应用。
上下文无关文法
介绍上下文无关文法和语法分析器的关系,以及 如何根据文法生成语法分析器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
①<句子>::=<主语短语> <动词短语> ②<主语短语>::= the <名词> ③<动词短语>::=<动词><宾语短语> ④<宾语短语>::=<冠词><名词>
英语语言为例。并设每个句 ⑤<名词>::=monkey 子都是“主-谓-宾”结构 文法——见右。其中,每个 ⑥<名词>::=banana 用< >括起来的部分是所要 ⑦<动词>::=eat
语义(semantics) 分类: 静态语义:一系列限定规则,确定哪些 合乎语法的程序是合适的 动态语义:表明程序要做什么 描述工具: 指称语义,操作语义等 作用: 检查类型匹配,变量作用域等
2.
文法的直观概念
(六)上下文无关文法及语法树
(七)句型的分析
(八)有关文法实用中的一些说明
(一)形式语言理论
(二)语言和文法的直观概念
(三)字母表、串、语言
(四)文法和语言的形式定义
(五)文法的类型
(六)上下文无关文法及语法树
(七)句型的分析
(八)有关文法实用中的一些说明
(二)语言和文法的直观概念(引例)
我们从“产生语言”的角度 出发,讨论文法和语言的形式 定义 语言生成——指制定出有限 条规则,借助它们产生的句 子的集合
推导序列 练习:请推导the banana eat a monkey
语法规则及其产生的语言
前面的语法规则可以产生16个不同的句子,由这16 个句子组成的集合,就是该规则所定义(或所产生) 的语言 应指出,所产生的句子中,有些句子的含义是荒谬 的(如 the banana eat a monkey和the banana eat the banana等)。然而,若不考虑语义,则我 们就必须承认它们是语法上合法的句子。
定义语言中的一个语法实体 (称为语法单位、语法结构、⑧<动词>::=has 语法范畴、语法变量等)。 “::=”是用于定义语法结构 ⑨<冠词>::=the 的符号,其含义(并读作) ⑩<冠词>::=a “定义为” 。文法也称为产 生式(Production)
(二)语言和文法的直观概念(引例)
例如
推导序列
用语法规则进行推导
从<句子>出发,经8步推导得到一个英语句子,则 称前面的推导为长度为8的推导
若不关心推导的中间过程,可将从一符号串到另
一符号串的推导用记号 表示, 例如上例中经过 5步的
句子 the m onkey 动词
规则的简化表示
在前面的语法规则定义中,有些语法范畴(如<名词 >、<动词>)有若干条不同的规则来定义它,为简 明起见,我们可以将它们写在同一个左部语法范畴 下,将其定义值用符号“|”(读作‘或’)隔开。 如<名词>、 <动词>、 <冠词>的定义规则可简记为
<名词>::= monkey | banana <动词>::= eat | has <冠词>::= the | a
推导 步 1 2 3 4 5 6 7 8
所用 所得的符号串 规则 ① <句子> <主语短语> <动词短语> ③ <主语短语><动词><宾语短语> ② the <名词><动词><宾语短语> ④ the <名词><动词><冠词><名词> ⑤ the monkey<动词><冠词><名词> ⑦ the monkey eat <冠词><名词> ⑩ the monkey eat a <名词> ⑥ the monkey eat a banana
(二)语言和文法的直观概念
1.
程序设计语言的定义 语言是一个记号系统。 汉语--符合汉语语法的句子的全体 英语--符合英语语法的句子的全体 程序设计语言--该语言的程序的全体 程序设计语言由语法和语义定义: 语法:定义每个程序构成的规则 语义:定义每个程序的意义
程序设计语言包括:语法和语义 语法(syntax) 定义: 是一组规则,用它可以形成和产生 一个合适的程序 描述工具:文法 作用: 定义什么样的符号序列是合法的, 与符号的含义无关。
<句子> <主语短语><动词短语>
所得符号串<主语短语><动词短语>含有两个语法实体,可 对其中任一个(例如对<动词短语>)进行新的推导
<句子> <主语短语><动词短语> <主语短语><动词><宾语短语>
重复上述过程,可得到一个推导序列(见下页)。
推导长度
推导 步 1 2 3 4 5 6 7 8 所用 所得的符号串 规则 ① <句子> <主语短语> <动词短语> ③ <主语短语><动词><宾语短语> ② the <名词><动词><宾语短语> ④ the <名词><动词><冠词><名词> ⑤ the monkey<动词><冠词><名词> ⑦ the monkey eat <冠词><名词> ⑩ the monkey eat a <名词> ⑥ the monkey eat a banana
应用领域
(一)形式语言理论
(二)语言和文法的直观概念
(三)字母表、串、语言
(四)文法和语言的形式定义
(五)文法的类型
(六)上下文无关文法及语法树
(七)句型的分析
(八)有关文法实用中的一些说明
(一)形式语言理论
(二)语言和文法的直观概念
(三)字母表、串、语言
(四)文法和语言的形式定义
(五)文法的类型
第二章
形式语言概论
形语言理论
什么是语言?
“为相当大地区的公众所懂得并使用的‘话’,以及组 成这些‘话’的方法的统一体” “某一字母表上符号串(句子)的集合”
定义仍需精确化 1)字母表 2)语法 3)语义
形式语言理论
由数学方法研究自然语言(如英语)和人工语言(如程 序语言)之语法的理论,主要讨论了语言和文法的数 学机制以及语言和文法的分类
推导(derivation)——从语言最大的一个语法实体(本例中 是<句子>)开始,反复用语法规则中“::=” 右侧的符号串 取代其左侧符号,直到所得的符号串中不再含有可被替换 语法实体。每次替换称为一步(直接)推导,并用符号 “”表示。 首先用规则①进行第一步推导,可得到<主语短语><动词短 语>,即