该程序实现1.面向某一高级语言子集的词法分析器;2.将给定的正规文法转换为正规表达式;3.正规文法与有穷自动机的相互转换;4.利用给定的正规文法、有穷自动机或正规表达式其中之一,对给定的字符串开展词法分析,给出判定结果.程序实现图形化界面,美观大方。
2023/11/15 8:12:18 93KB Java
1
语言为C/C++,共有四个实验,实验一实验二功能全部实现,实验三第二个功能有待完善,实验四也是实现了部分功能。
我当时提交是没问题的,介意的请不要下载,实验一:词法分析器,实验二:正规文法转换为正规表达式,实验三:正规文法与有穷自动机的相互转换,实验三:利用给定文法或有穷自动机或正规表达式。
进行词法分析
2023/11/11 19:18:36 11.38MB 编译原理实验
1
大学课程方案编译原理课程方案,自成果向正规文法的自动转换。
内有源代码,复制粘贴就可编译运行
1
(1)正规文法转正规式:本程序的数据结构是string类的字符串存储变量,首先,读入的是3型文法,即正规文法,关于文法的检验这里就不再进行(因为第一个实验里已经实现了),读入的还有一个flag,flag为0即为左线性,为1为右线性,对读入的文法先进行第一次归类,即正规式左部相同的放在一起,本程序使用vector容器实现的对象放置,然后对所有的没有外部依赖的元素进行整合,最后依据没有外部依赖的整合后的表达式对其他的正规文法进行转换,最终得到转换结果。
(2)正规式NFA本程序有很多数据结构,但最终的目的数据结构是存储转化好的NFA图的单元cell,里面包含起点、终点、边数以及边集合。
先读入正规式,并对正规式进行合法检测,将正规式中填入连接符号“+”,然后将其转化成后缀表达式,根据后缀表达式,对每一个操作符和操作数进行处理,处理的数据结构为cell类型的堆栈,处理完后,将最终栈内唯一的目的cell元素出栈,最后将其用二维数组的方式展现出来。
输入文件样例:a($|((a|d)(a|d)*))
2018/10/4 10:04:24 180KB 编译原理 正规式NFA 正规文法
1
实验分为词法分析程序与三地址代码生成程序两部分。
实验一1. 词法正规式描述、变换后的正规文法、形态图2. 词法分析的数据结构与算法思考题1. 词法分析能否采用空格来区分单词?2. 程序设计中哪些环节影响词法分析的效率?如何提高效率?实验二1. 语法制导定义2. 改写后的产生式集合3. 化简后的语法图4. 递归子程序的算法5. 三地址代码生成器的数据结构6. 程序结构的说明思考题1.生成的三地址代码可否直接输出(不采用数据结构来实现属性code)?2.如何保证四则运算的优先关系和左结合性?
2022/9/6 16:30:20 114KB 编译原理 实验报告
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡