其他分享
首页 > 其他分享> > 文法与语言(笔记版)

文法与语言(笔记版)

作者:互联网

一、前言

编译过程的核心就是翻译,这是一个十分复杂的信息加工过程,其加工对象是用某种高级语言编写的程序。把用一种数学符号和规则来描述的语言的方式叫做形式描述,而把用一种数学符号和规则来描述的语言叫做形式语言。以下是学习形式语言必备的一些密切相关的术语和概念。


二、文法与语言

字母表:

元素的非空有穷集合,每个元素称为符号,字母表也可叫符号集。典型的符号有:字母、数字、标点符号和各种运算符。

符号串:

由字母表上0个或多个符号所组成的任何有穷序列。注意:ɛ也是字母表上的符号串,由0个符号组成。

符号串的运算:
符号串集合的运算:
文法:

​ 概念:描述语言语法结构的一系列形式规则。

文法表示为一个四元式G(Vn, Vt, P, Z)

  1. Vn 是一个非空有穷集合,该集合的每个元素称为非终结符,至少在规则的左部出现一次。
  2. Vt是一个非空有穷集合,该集合的每个元素称为终结符,只在规则的右部出现。
  3. P是一个非空有穷集合,该集合的每个元素称为产生式或规则。表示形式有两种:ɑ→β 或 α::=β。
  4. Z是Vn 的一个特殊非终结符,称为文法的识别符号或开始符号,它至少必须在某个规则的左部出现一次。
直接推导:

​ 概念:xαy→xβy的过程,称为直接推导,反方向称为直接规约。

规范推导:

​ 也叫最右推导。即每步推导只变换符号串中最右边的非终结符;

​ 相反,每步推导只变换符号串中最左边的非终结符,最左推导。

句型:

包含非终结符和终结符的符号串。

句子:

只包含终结符的符号串,是特殊的句型。

语言:

一个文法G[Z]所产生的所有句子的集合,即L(G[Z]) = {x | x ∈ V*T, 且Z =+> x}。

文法与语言的关系:
递归规则:

​ 在规则的右部含有与规则左部相同符号的规则。

递归文法:

​ 在文法中至少包含一条递归规则,则称文法为直接递归的;有些文法属于间接递归的。由递归文法描述的语言是无穷的。

短语:

​ 在句型的推导过程中能由某个非终结符推导出的子串。

简单短语:

​ 能由非终结符直接推导出的子串。

句柄:

​ 任意句型的最左简单短语。是唯一的

规范规约:

​ 每步都对规约句型的句柄规约,也叫最左归约。规范推导与规范规约互为逆过程。

文法的二义性:

​ 如果一个文法所定义的句子中有某个句子或句型,它存在两棵不同的语法树,那么这个句子或句型是二义性的,该文法也是二义性文法

有关文法的实用性限制:
  1. 不能有U::=U这样的有害规则;
  2. 不能有多余的规则:一是推导始终用不到的规则;二是一旦使用某规则后无法推出终结符号串的规则。
文法与语言的分类:

标签:文法,终结符,语言,笔记,规则,集合,型文法,符号串
来源: https://blog.csdn.net/weixin_48627356/article/details/121885209