第六次实验 文法

1.分别写出描述以下语言的正规文法和正规式:

L1={abna|n≥0}。

正规文法:S->abna

A->aA

A->bA|a

正规式:ab*a

L2={ambn|n≥1,m ≥1}

正规文法:S->aS

S->bS|b

正规式: S=aa*bb*

L3={(ab)n|n≥1}

S->(ab)S|(ab)

正规式: S=(ab)(ab)*

2.将以下正规文法转换到正规式

Z→0A
A→0A|0B
B→1A|ε

A=0A+0B=0A+0(1A+0)=0A+01A+0=(0+01)A+0=(0+01)*0

Z=0(0+01)*0

正规式:Z=0(0|01)*0

Z→U0|V1
U→Z1|1
V→Z0|0

Z = (Z1+1)0 + (Z0+0)1 = Z10 + 10 + Z01 +
01 = Z(10+01) + 10 + 01

正规式:Z =
(10|01)*(10|01)

S→aA
A→bA|aB|b
B→aA

A=bA+aB+b=bA+aaA+b=(b+aa)A+b=(b|aa)*b

正规式:S=aA=a(b|aa)*b

I→l|Il|Id

I = l + Il + Id = I(l+d) + l

正规式:I=(l|d)*l

原文地址:https://www.cnblogs.com/zhff/p/11685476.html

时间: 2024-11-06 09:30:06

第六次实验 文法的相关文章

面向对象第六次实验

实验六  运算符重载 1.实验目的 理解运算符重载(非成员形式和成员形式).学习重载几类运算符(++,=,!=,+,-,==等). 2.实验内容 应用VC++6.0的构建一个复数类Complex,试对下列几个运算符进行重载:++,=,!=,+,-,==,其中要求要有成员重载形式和友元重载形式,而且,++运算符要求实现先加和后加两种形式. 该类定义原型说明: class complex { public: complex(int r=0,int i=0); complex &operator +(

第六次实验报告第二部分

第六章函数和宏定义 姓名:廖云福 实验地点:514教室 实验时间:5.16 一.实验目的与要求 1.模块化程序设计: 6.4.2.2. 利用复化梯形公式计算定积分 掌握C语言中定义函数的方法: 掌握通过"值传递"调用函数的方法. 6.4.2.3. 计算Ackerman函数 掌握递归函数的设计方法: 进一步练习阅读检查与调试修改C程序的方法. 6.4.3.1. 编写计算x的y次幂的递归函数getpower(int x,int y),并在主程序中实现输入输出 写出该函数的递归算法: 在递归

5233杨光--第六周实验报告

第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. 4.1.1 程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 4.1.2 Y86指令 4.1.4 Y86异常

信息安全系统设计第六周实验报告

第六章.储存器层次结构 存储器系统:具有不同容量.成本和访问时间的存储器设备的层次结构.计算机程序的基本属性:局部性.具有良好局部性的程序倾向于一次又一次访问相同的或者邻近的数据项集合,倾向于从存储器层次结构中较高层次处访问数据项,因此运行的更快. 一.存储技术 (1)随机访问存储器(RAM) 静态RAM:用来作为高速缓存存储器,每个位存储在一个双稳态的存储器单元里. 动态RAM:用来作为主存以及图形系统的帧缓冲区. 传统的DRAM: 1.信息通过称为引脚的外部连接器流入/流出芯片,每个引脚携带

第六次实验

1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数.原四位数为新四位数的4倍,请找出一个这样的四位数. #include<stdio.h> int main() { int i,a,b,c,d,j; for(i=1000;i<=10000;i++) { a=i/1000; b=(i/100)%10; c=(i%100)/10; d=i%10; if(a!=b&&b!=c&&c!=d) { j

201771010124 王海珍 《实验六 继承定义与使用》第六章实验总结

第一部分:理论知识学习部分 第五章 第五章学习内容主要分为七个模块,分别为: 1.类.超类和子类: a. 类继承的格式: class 新类名extends已有类名. b. 已有类称为:超类(superclass).基类(base class) 或父类(parent  class) 新类称作:子类(subclass).派生类(derived  class)或孩子类(child class) c.super是一个指示编译器调用超类方法的特有关键字,它不是一个对象的引用,不能将super赋给另一个对象

实验六 MapReduce实验:二次排序

实验指导: 6.1 实验目的基于MapReduce思想,编写SecondarySort程序. 6.2 实验要求要能理解MapReduce编程思想,会编写MapReduce版本二次排序程序,然后将其执行并分析执行过程. 6.3 实验原理MR默认会对键进行排序,然而有的时候我们也有对值进行排序的需求.满足这种需求一是可以在reduce阶段排序收集过来的values,但是,如果有数量巨大的values可能就会导致内存溢出等问题,这就是二次排序应用的场景——将对值的排序也安排到MR计算过程之中,而不是单

第六章 实验报告(函数与宏定义)

实验项目:函数的定义和调用 模块化程序设计 实验练习1:编写由三角形三边求面积的函数 实验目的: 调用area()函数求三角形的面积 在求面积函数运用海伦公式 问题描述:编写程序,从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果. 程序框图: 程序实现: #include<math.h> #include<stdio.h> float area(float a,float b,float c) { float s,p,area; s=(a+b+c)/2; p=s*

第六章 实验报告 (函数与宏定义)

C程序设计实验报告 实验项目: 6.4.1.1编写由三角形三边求面积的函数 6.4.1.2编写求N的阶层 6.4.1.3求两个整数的最大公约数 6.4.1.4打印输出的指定图形 6.4.2.1模块化程序设计 姓名:杨婷 实验地点:教学楼514教室 实验时间:2019年4月30日 一.实验目的与要求 <1>6.4.1.1编写由三角形三边求面积的函数 调用area()函数求三角形的面积 在求面积函数中运用海伦公式 <2>6.4.1.2编写求N的阶层 定义符号常量 使用长整型变量存放累乘