这是编译原理课程设计完整code和文档!
1
(1)根据LR(0)分析法编写一个语法分析程序,输入已知文法,由程序自动构造项目集规范族; (2)根据输入文法,自动构造文法的分析表M,能判断该文法是否为LR(0)文法,若不是则能够指出其存在的冲突; (3)对于输入的文法和符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子,并输出分析过程。
2019-12-21 20:43:48 672KB java lr0 编译原理 课程设计
1
东北大学编译原理课程设计的实验代码和实验报告 此资源非网上照抄,是包括本人在内五人组在实验中花费七个星期做的。程序已经验证
2019-12-21 20:34:21 3.39MB 编译课设
1
北邮编译原理课程设计
2019-12-21 20:32:41 123KB 北邮编译原理
1
代码生成器。它依次把每条中间代码变换成目标代码,并且在一个基本块范围内考虑如何充分利用寄存器的问题。
2019-12-21 20:30:00 141KB 代码生成
1
优秀作品放心下载,绝对不会后悔的,本人是15级本科生
2019-12-21 20:27:45 430KB C-
1
可能对你的学习有帮助 1、增加 != 运算 2、增加保留字(没有相应的算法实现) 3、增加对if a then b else c的语法、语义及实现 4、更改保留字TIMESEQLSYM/SLASHEQLSYM为TIMESEQL/SLASHEQL,保留字数量更改。并实现*=、/=的功能。 5、实现了FOR的2种功能TO与DOWN。 6、实现了对典型语言 ++ -- 的实施。 注:本来,这个功能的增加是需要在FACTOR里面进行扩充的,但是因为时间问题,所以只是在STATEMENT中进行了对后++/--的运算,而并没有完整地实现这个功能。有时间的话,可以自己修改之。 7、增加单字符 CHAR。 8、增加实数类型 REAL 及其运算。 注:问题1:如果进行READ()函数操作的时候会出错,所以就没有进行READ()的例子。问题2:对数值的位数没有进行截断。
2019-12-21 20:26:29 1.67MB 编译原理
1
自己做编译课程设计写的一个很简单的C编译器,用的是LEX+YACC写的,方法比较新,由于时间的关系写的不是很完善,但是要扩充的话比较容易。压缩包中附LEX&YACC的语言详解,相信对于对编译有兴趣的人有些帮助。
2019-12-21 20:25:06 405KB 编译原理 YACC LEX
1
北航编译原理2013年课程设计作业,源代码+要求文法+测试代码 文法 pl0, 模板是参考网上大部分的,自己找找就能找到类似的,参考课程要求的文法对原模板进行了修改,而且加了比较详细的注释,适用于北航学生进行课程学习和参考,在vc 6++和vs2012下均可顺利编译运行。 test里的是同学共享的代码,均可以进行简单的修改已检验测试结果。进攻学习参考,禁止抄袭
2019-12-21 20:23:17 25KB 编译器 pl0 北航 编译原理
1
java编程 含有界面 以及完整代码 〈程序〉→ main()〈语句块〉 〈语句块〉→{〈语句串〉} 〈语句串〉→〈语句〉;〈语句串〉|〈语句〉; 〈语句〉→〈赋值语句〉|〈条件语句〉|〈循环语句〉 〈赋值语句〉→ ID =〈表达式〉; 〈条件语句〉→ if〈条件〉〈语句块〉 〈循环语句〉→ while〈条件〉〈语句块〉 〈条件〉→(〈表达式〉〈关系符〉〈表达式〉) 〈表达式〉→〈表达式〉〈运算符〉〈表达式〉|(〈表达式〉)|ID|NUM 〈运算符〉→+|-|*|/ 〈关系符〉→<|<=|>|>=|=|!> word.wordList包(存储了关键字): word:此类是定义了存储关键字的结构:包括String型的关键字,和int型的识别符。 wordList:此类存储了29个关键字,在构造函数中初始化。 2、word包(进行词法分析)中: basicFunction:此类定义了做词法分析的基本函数: GetChar()将下一输入字符读到ch中,搜索知识器前移一个字符位置 GetBC();检查ch中的字符是否为空白。若是,则调用GetChar直至不 是字符为止 Concat();将ch中的字符连接到strToken之后 IsLetter();判断ch中的字符是否为字母 IsDigit();判断ch中的字符是否为数字 Reserve();对strToken中的字符创查找保留字表,若是则返回它的编码,否则返回0 Retract();将搜索指示器回调一个字符位置 RetractStr();将strToken置空 lexAnalysis:此类是用来进行词法分析,将分析后的单词存入word数组中,(注:在词法分析中,若是一串字母,则认为是ID,若是数字,则认为是NUM。存储的时候识别符分别存ID与NUM的识别符,但是内容仍然是自己的内容) 其中的wordAnalysis函数就是词法分析函数(具体实现请看后面的重要函数分析) 3、stack包(定义栈)中: 栈是通过链表来定义的,因此 StringListElement:次类定义了链表的每一个节点 StringStrack:此类定义了栈,其中有长度属性,有函数: Top();用来取得栈顶 Push();压栈 Pop();出栈 4、sentence包(语法分析)中: juzi :定义了文法的句子的结构:key(左边部分) content[](右边推出的部分) lo(长度) grammar :存储了文法的27个关系式 AnalysisFB :定义了分析表的存储结构 AnalysisF :存储分析表 SentenceAnalysis :语法分析 JuProduction(word w):此函数是用来判断在当前栈与输入串的情况下,用哪一个产生式,返回产生式在数组中的下标 若输入串的第一个字符与栈顶字符相同则表示可以规约,则返回-1; 若不能过用产生式,则返回-2; AnalysisBasic(word w):此函数是分布进行语法分析,对栈操作 * 根据所需要的产生式对符号栈进行操作 * 返回0表示规约;返回1表示移进;否则表示输入串不是文法的句子 5.Main包(主界面)中 Main:此类定义了图形界面
2019-12-21 20:22:06 3.25MB 词法分析器及语法分析器
1