首页 > 其他分享 >3.2文法与语言

3.2文法与语言

时间:2022-11-18 16:57:04浏览次数:26  
标签:文法 语言 句型 推导 3.2 句子 gave

1、文法生成语言
推导

  • 定义:当αAβ直接推导出αγβ,即αAβ⇒αγβ,仅当A→γ是一个产生式,且α,β∈(VT∪VN)*。

   注:按照我的理解是两个字符串的推导。

  • 如果α1⇒α2⇒…⇒αn,则我们称这个序列是从α1到αn的一个推导。若存在一个从α1到αn的推导,则称α1可以推导出αn。
  • 对文法G(E):E→i | E+E | E*E | (E)

   E⇒(E)⇒(E+E)⇒(i+E)⇒(i+i)

  • 从一个串到另外一个串的推导往往不是唯一。
  • 下面这个就是一种推导

  • α1⇒* αn,从α1出发,经过0步或若干步推出αn.
  • α1⇒+ αn,从α1出发,经过1步或若干步推出αn.
  • α⇒* β ,α=β 或α⇒+ β
  • 下面三种都是合理的

   <句子> ⇒* He gave me a book.
   <句子> ⇒+he gave me a book.
   He gave 间接宾语 直接宾语 ⇒+ He gave me 冠词 名词
句型、句子和语言

  • 假如G是一个文法,S是它的开始符号。如果S⇒*α,则称α是一个句型。

           比如:<主语><谓语><间接宾语><直接宾语>⇒ *He<谓语><间接宾语><直接宾语>,则称He<谓语><间接宾语><直接宾语>是句型。

  • 仅包含终结符的句型是一个句子。

   比如:he gave me a book.是一个句子。

  • 文法G所产生的句子的全体是一个语言,记为L(G)。

   L(G) = {α|S⇒+α,α∈VT*}
2、句型和句子练习
请证明(ii+i)是文法G(E):E→i | E+E | E*E | (E)的一个句子。
满足下面这两种条件。
S⇒* α,α∈VT*(α要可以被S推导出来,并且a要都是终结符)
证明:
E⇒(E)
⇒(E+E)
⇒(E * E+E)
⇒(i * E+E)
⇒(i * i+E)
⇒(i * i+i)
(i * i+i)是文法G的句子。
E,(E),(E*E+E),…,(i * i+i)是句型。

3、文法与语言
设文法G1(A):A→c | Ab,G1(A)产生的语言是什么?

以c,开头,后续若干个b
L(G1) = {c,cb,cbb,…}
设文法G2(S):S→AB,A→aA | a,B→bB|b,G2(S)产生的语言是什么?

L(G2) = {anbm|n,m>0}
请给出产生语言为{anbn|n>=1}的文法
G3(S):S→aSb,S→ab

请给出产生语言为{ambn|1<=n<=m<=2n}的文法

  • G4(S):

   S→ab|aab
   S→aSb|aaSb
   从递归的角度理解

标签:文法,语言,句型,推导,3.2,句子,gave
From: https://www.cnblogs.com/xzit201802/p/16903792.html

相关文章

  • C语言函数的取地址符和星号
    最近对函数的星号和取地址符有些困惑于是写了这一点简单的代码来回忆一下;1、#include<stdio.h>voidf(intx,inty){intt;t=x;x=y;y=t;printf("x=%d;......
  • 跨平台语言对比
     一、 跨平台语言对比python、Java、c#和c++中跨平台语言中最好的是java 原因:1.Java本身就是一种可撰写跨平台应用程序的面向对象的语言。其中虚拟机帮我们做的就......
  • 语言基础小记
    1.C#支持哪几个预定义的值类型?值类型:简单类型(整型、布尔型、字符型、浮点型、小数型)       结构类型       枚举类型(byte、bool、int、f......
  • 【c&c++】C语言 结构体 - 字节对齐 使用预处理命令 #pragma 对齐
    在C语言中每个数据类型都有他的对齐方式例如char是一个一节对齐,int是四个字节对齐,float是八个字节对齐,short是两个字节对齐由于对齐方式的特性就会拥有相同成员的结......
  • 3.1上下文无关文法
    1、文法2、语言描述的几个基本概念基本概念1字母表:一个有穷字符集,记为∑字母表中的每个元素称为字符∑上的字(也叫字符串)是指由∑中的字符所构成的一个有穷序列不包含任何......
  • C语言:找最大交错正方形
    题目图上有一个矩阵,由N*M个格子组成,这些格子由两种颜色构成,黑色和白色。请找到面积最大的且内部是黑白交错(即两个相连的正方形颜色不能相同)的正方形。输入格式:第一行两......
  • 1.1 何为程序?何为语言?
    程序计算机为得到某种结果,通过计算机语言表达的指令序列。管理学为进行某项活动或过程所规定的途径。生活学典礼的程序如下,第一项、第二项打太极拳的步骤语言计......
  • C语言:计算器
    题目请你编写一个科学计算器,支持多括号嵌套的四则运算,三角函数及指数对数运算功能可选(功能越多越好,指数的输入格式为a^b,对数的输入格式为logab,(其中a为底数))代码#in......
  • C语言:约瑟夫环
    题目n个人围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。 例如:  ......
  • C语言:IPv6地址压缩
    题目IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。例如:2001:0db8:0000:0000:0123:4567:89ab:cdef是一个......