语言及其文法

Posted localhost-ha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语言及其文法相关的知识,希望对你有一定的参考价值。

基本概念

字母表

  • 字母表(Sigma):有穷符号集合

字母表上的运算

  • 乘积

    (Sigma)1(Sigma)2 = { ab|a(in)(Sigma)1, b(in)(Sigma)2 }

  • n次幂

    字母表的n次幂:长度为n的符号串构成的集合

    • (Sigma)0 = { (varepsilon) }
    • (Sigma)n = (Sigma)n-1(Sigma) , n$geq$1
  • 正闭包

    字母表的正闭包:长度正数的符号串构成的集合

    (Sigma)+ = (Sigma) U (Sigma)2 U (Sigma)3 U ...

  • 克林闭包

    字母表的克林闭包:任意符号串(长度可以为零)构成的集合

    (Sigma)* = (Sigma)0 U (Sigma)+ = (Sigma)0 U (Sigma) U (Sigma)2 U (Sigma)3 U ...

  • (forall) x (in) (Sigma)*,x称为(Sigma)上的一个串
  • 串是字母表中符号的一个有穷序列
  • 串s的长度|s|:s中符号的个数
  • 空串 (varepsilon) :长度为0的串

串上的运算

  • 连接

    • 如果 x 和 y 是串,那么 x 和 y 的连接是把 y 附加到 x 后面而形成的串,记作 xy

    • 空串是连接运算的单位元,即对于任何串s 都有:(varepsilon)s = s(varepsilon) = s
    • 设x,y,z 是三个字符串,如果 x= yz则称 y 是 x 的前缀,z 是 x 的后缀

  • 串s的n次幂:将n个s连接起来

    • s0 = (varepsilon)
    • sn = sn-1s , n$geq$1

文法定义

形式化定义

G = ( VT , VN , P , S )

技术图片

  • VT:终结符集合

    终结符(token):文法定义的基本符号

  • VN:非终结符集合

    非终结符(nonterminal):表示语法成分的符号,又称语法变量

    VT (cap) VN = (phi)

    VT (cup) VN :文法符号集

  • P:产生式集合

    产生式:描述终结符和非终结符组合成串的方法

    产生式一般形式:(alpha) ( ightarrow) (eta) (alpha)定义为(eta)

    产生式头部/左部:(alpha) (in) ( VT? (cup) VN )+

    产生式体/右部:(eta) (in) ( VT (cup) VN )*

  • S:开始符号

    开始符号表示该文法中最大的语法成分

    S (in) VN

符号约定

技术图片

终结符

  • 字母表中排在前面的小写字母

  • 运算符
  • 标点符号
  • 数字
  • 粗体字符串

非终结符

  • 字母表中排在前面的大写字母
  • 字母S:通常表示开始符号
  • 小写、斜体的名字
  • 代表程序构造的大写字母:E(表达式)、T(项)、F(因子)

文法符号

  • 字母表中排在后面的大写字母(即终结符或非终结符)

终结符号串

  • 字母表中排在后面的小写字母(包括空串

文法符号串

  • 小写希腊字母(包括空串

开始符号

  • 除非特别声明,第一个产生式的左部是开始符号

产生式简写

  • 一组有相同左部的(alpha)产生式:(alpha)( ightarrow)(eta)1, (alpha)( ightarrow)(eta)2, ... , (alpha)( ightarrow)(eta)n,可简记为:(alpha)( ightarrow)(eta)1|(eta)2|...|(eta)n

    (eta)1(eta)2(eta)n 称为(alpha)的候选式

语言定义

推导和归约

技术图片

技术图片

  • 推导:用产生式的右部替换左部

    技术图片

  • 归约:用产生式左部替换右部

句型和句子

技术图片

技术图片

语言的形式化定义

技术图片

语言上的运算

技术图片

文法分类

0型文法(PSG)

产生式左边至少有一个非终结符

技术图片

1型文法(CSG)

产生式右边比左边长

技术图片

  • 非终结符A上下文均为 (alpha)1 (alpha)2 时,才可以替换为(eta)

2型文法(CFG)

产生式左边只由非终结符

技术图片

3型文法(RG)

产生式左边是一个非终结符,右边是0/1个非终结符和终结符号串

w:终结符号串

右边非终结符在左即左线性,在右即右线性

技术图片

四种文法间的联系

技术图片

CFG分析树

基本概念

技术图片

图形化表示

分析树是推导的图形化表示

技术图片

句型的短语

技术图片

二义性文法

  • 如果一个文法可以为某个句子生成多棵分析树,则该文法是二义性的
  • 对于任意一个上下文无关文法,不存在一个算法,判定它是无二义性的;但能给出一组充分条件,满足这组充分条件的文法是无二义性的

以上是关于语言及其文法的主要内容,如果未能解决你的问题,请参考以下文章

文法和语言总结与梳理

第2081期理解ECMAScript规范

形式语言自动机—— 文法的一般理论

文法和语文总结与梳理

编译原理(清华大学出版社)-- 文法和语言 -- 文法和语言的形式定义

编译原理之理解文法和语言