文法和语言的基本知识

文法和语言的基本知识

序列的集合称为__形式语言__

程序语言的描述有三个方面:语法语义语用

字母表:字母表是元素的非空有穷集合。

文法:G = (Vn,Vt,P,S)

​ Vn是规则中非终结符号的集合

​ Vt是终结符号的集合。Vn与Vt = 空,Vn并Vt称为文法G的字汇表

​ P是文法规则的集合

​ S是开始符号

描述同一语言的文法不唯一。

推导和规则的区别:

  • 形式上的区别,推导用“=>”,规则用"->"
  • 对文法任何规则A->a有A=>a,推导的依据是规则

直接推导的长度为1,推导的长度大于等于1。广义推导的长度大于等于0。

句型:有终结符和非终结符

句子:只有终结符

语言:又文法产生的所有句子的集合成为文法所定义的语言,寄为L(G【S】)。

最右推导<=>最左规约 都是__规范推导__和__规范规约__

短语:一个句型的语法树中任一子树叶结点所组成的符号串都是该句型的短语

​ 子树末端结点行程的符号串是子树根的短语

素短语:含有终结符的短语且自身不包含其他素短语

直接短语:语法树中子树不包含其他子树

​ 简单子树末端阶段是子树根的直接短语

句柄:定义:一个句型的最左直接短语称为该句型的句柄。

​ 语法树中最左的直接短语

​ 最左简单子树末端结点是句柄

这里写图片描述

  • 短语:T*F,E+T*F
  • 直接短语:T*F
  • 句柄:T*F

文法

  • 0型文法(无限制文法):基本上所有语言都是

  • 1型文法(上下文有关文法):

    • 式子左边必须有一个非终结符
    • 式子右边可是终结符也可是非终结符,但是必须有限个字符
    • 左边长度要小于等于右边
  • 2型文法(上下文无关文法):

    • 式子左边只有一个非终结符
    • 式子右边可以是终结符或者非终结符,但是必须有限个字符
  • 3型文法(正规文法):

    • 左线性文法:A\rightarrow aimg

    • 右线性文法:imgimg

  • 判断文法先从3->2->1->0文法判断

文法的限制

  • 不能有形如A->A的规则,这种称为有害规则,引起二义性。
  • 文法不能有多余的规则。

文法的二义性:如果文法中存在两颗不同的语法树,则该文法是二义性文法

  • 改变语法的规则
  • 重新构造无二义性文法
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值