1型,2型,3型,文法的区别

1型文法:又称为上下文有关文法,

(1):式子左边可以有多个字符,但必须有一个终结符
(2):式子右边可以有多个字符,可以是终结符,也可以是非终结符,但必须是有限个字符
2型文法:又称为上下文无关文法,
(1):式子左边只能有一个字符,而且必须是非终结符
(2):式子右边可以有多个字符,可以是终结符,也可以是非终结符,8但必须是有限个字符
3型文法:又称为正规文法(正规文法又包括左线性文法和右线性文法)
(1):式子左边只能有一个字符,而且必须是非终结符
(2):式子右边最多有二个字符,而且如果有二个字符必须是一个终结符和一个非终结符
如果只有一个字符,那么必须是终结符
(3):式子右边的格式一定要一致,也就是说如果有一个是(终结符+非终结符)那么所有的式子都必须是(终结符+非终结符)
  如果有一个是(非终结符+终结符),那么所有的式子都必须是(非终结符+终结符)
正规文法——左线性文法:
(1):必须是三型文法
(2):式子右边的产生是(非终结符+终结符)的格式
正规文法——右线型文法:
(1):必须是三型文法

(2):式子右边的产生式是(终结符+非终结符)的格式

0型文法:当然在判断文法时,肯定是先从3型开始,如果不是再看是不是2型,如果还不是再看是不是1型,如果1,2,3型都不是哪就是1型文法!

时间: 2024-08-14 17:02:31

1型,2型,3型,文法的区别的相关文章

小白日记49:kali渗透测试之Web渗透-XSS(三)-存储型XSS、DOM型XSS、神器BEFF

存储型XSS与DOM型XSS [XSS原理] 存储型XSS 1.可长期存储于服务器端 2.每次用户访问都会被执行js脚本,攻击者只需侦听指定端口 #攻击利用方法大体等于反射型xss利用 ##多出现在留言板等位置 *推荐使用burpsuite a.观察返回结果,是否原封不动地返回输入数据?是否有其他标签 js代码通过留言板存储在服务器中,所以每次点击留言板链接,都会弹出xss弹窗 b.测试加载攻击者控制的服务器中的js文件 #启动apache2[默认侦听80端口] a.js [盗取客户端cooki

Atitit 3种类型的公司:运营驱动型;产品驱动型; 技术驱动型。

Atitit  3种类型的公司:运营驱动型:产品驱动型: 技术驱动型. 领导驱动,产品驱动,运营驱动还是工程师驱动 3种类型的公司: 一种是运营驱动型: 一种是产品驱动型: 一种技术驱动型. 运营驱动型基本上是运营和销售.运营不是运营你的产品也不是运营你的业务,是运营人.运营用户.产品驱动型专注于产品的提升,用户的体验.技术驱动型,通过技术支撑大规模的运营.技术是为了支撑用户的体验,技术驱动系统更不用说,技术就是核心. 运营驱动最大的问题是没有安全感的,这也是为什么阿里巴巴要跟苏宁绑在一块.阿里

double型转换成string型

double型转换成string型 题目描述: 如有一个函数,其可接受一个long double参数,并将参数转换为字符串,结果字符串应保留两位小数,例如,浮点值123.45678应该生成"123.45"这样的字符串.表面上看来 这是一个意义不大的编程问题,然而,如果真要在实际中派上用场,函数应设计为具有一定弹性,以允许调用者指定小数位数.另外,函数也应该能够处理各种异常 情况,如像123.0或123这样的整数. 转换函数接口:string do_fraction(long doubl

java 中double型转化成int型(转)

java 中double型转化成int型 一个变量 double x: //不进行四舍五入操作: (int)x //进行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat("0").format(x))

C语言:int型指针与char型指针本质

---恢复内容开始--- 我的理解是,不管定义时将指针定义成何种类型,指针本质上都是一个数字,其位数由编译器来决定. 比如我的编译器是32位,那么无论是定义一个char *pc还是定义一个int *pi,本质上pc与pi都是一个32位的数,但是由于"char *" 和 "int *"的限制,所以pc++是自加8bit,而pi++是自加16bit. 1 // int指针与char指针.cpp : 2 // 看看“char型指针”与“int型指针”本质上有什么区别 3

C语言近程型(near)和远程型(far)的区别是什么?

DOS用一种分段结构来寻址计算机的内存,每一个物理存储位置都有一个可以用段一偏移量方式来访问的相关地址.例如,下面就是一个典型的段式地址:     A000:1234 冒号左边的部分代表段地址(A000),冒号右边的部分代表相对于段地址的偏移量.DOS下的每个程序都是按这种方式访问内存的——尽管段一偏移量寻址方法的机理对大多数C程序员来说是隐蔽的. 当你的程序被执行时,一个存放在数据段(DS)寄存器中的数据段地址将被赋给你的程序.这个缺省的数据段地址指向一个64KB的内存空间,这个空间通常就 被

const型变量和const型指针

const型变量和const型指针 const型变量 如果在程序中需要经常使用某一常量,可以使用编译预处理命令定义符号常量. eg:#define PI 3.14159 const型变量也是一种定义常量的手段.const型变量是特殊的变量,程序运行过程中不可改变,其他特性和变量一样.定义const变量时必须初始化. eg: const int Max=1000; //int和const位置可以交换. const常量与符号常量的区别: 1)符号常量由预编译器处理,const型变量由变量处理. 2)

冒泡型事件、捕获型事件

冒泡型事件的基本思想是.事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. <html>        <head>            <title></title>     </head>         <body onclick="theClick()">         <div onclick="theClick()">点击</di

java使用格式String型转成Date型

public class TimeTwo { public static void main(String[] args) throws ParseException{ String s = "2018-08-12 12:02:23"; SimpleDateFormat g = new SimpleDateFormat("yyyy-MM-dd MM:mm:ss"); try{ Date h = g.parse(s);// System.out.println(h);

Python中从SQL型数据库读写dataframe型数据

Python的pandas包对表格化的数据处理能力很强,而SQL数据库的数据就是以表格的形式储存,因此经常将sql数据库里的数据直接读取为dataframe,分析操作以后再将dataframe存到sql数据库中.而pandas中的read_sql和to_sql函数就可以很方便得从sql数据库中读写数据. read_sql 参见pandas.read_sql的文档,read_sql主要有如下几个参数: sql:SQL命令字符串 con:连接sql数据库的engine,一般可以用SQLalchemy