-------编译原理
文章平均质量分 67
计算机的小粽子
2019年本科毕业于湖南大学,目前任职字节跳动
展开
-
实验一(二) DFA识别字符串
代码地址 链接一、实验目的通过本次实验,加深对DFA及其识别的语言的理解,学习对一般的DFA的表达方法与编程实现方法。二、实验任务编写一个C语言程序,模拟实现DFA识别字符串的过程。三、实验内容(1)DFA的输入; (2)DFA的存储与读写; (3)DFA的正确性检查; (4)DFA的语言集列表显示; (5)DFA的规则字符串判定;四、内容说明:(1)DFA的输入: 分别输入DFA的“字符原创 2017-11-09 00:12:06 · 12502 阅读 · 0 评论 -
实验二 词法分析器的实现
这里定义了一个编程语言称作C-M i n u s (或简称为C-),这是一种适合编译器设计方案的 语言,它比T I N Y语言更复杂,包括函数和数组。本质上它是C的一个子集,但省去了一些重要 的部分,因此得名。这个附录由5小节组成。首先,我们列出了语言惯用的词法,包括语言标 记的描述。其次,给出了每个语言构造的B N F描述,同时还有相关语义的英语描述。在A . 3节, 给出了C-的两个示例原创 2017-11-19 23:09:36 · 6947 阅读 · 1 评论 -
实验三 NFA确定化和DFA最小化
(一)NFA–>DFA(2小时)一、实验目的学习和掌握将NFA转为DFA的子集构造法。二、实验任务(1)存储NFA与DFA; (2)编程实现子集构造法将NFA转换成DFA。三、实验内容(1)确定NFA与DFA的存储格式。 要求为3个以上测试NFA准备好相应有限自动机的存储文件。(可利用实验一(二)的基础) (2)用C或JAVA语言编写将NFA转换成DFA的子集构造法的程序。 (3)测试验证程原创 2017-11-25 21:35:54 · 9888 阅读 · 5 评论 -
实验一 (一)TINY 和 TM
实验一 基于C语言的TINY编译器与TM虚拟机(1学时)文件网盘地址: https://pan.baidu.com/disk/home?#list/vmode=list&path=%2F%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86%E5%AE%9E%E9%AA%8C%2F%E5%AE%9E%E9%AA%8C%E4%B8%801.生成TINY编译器 2.生成TM虚拟机原创 2017-11-07 20:34:43 · 2988 阅读 · 0 评论 -
实验四(二)实现一门语言的语法分析器
代码地址 Github(二)实现一门语言的语法分析器一、实验目的通过本次实验,加深对语法分析的理解,学会编制语法分析器。二、实验任务用C或JAVA语言编写一门语言的语法分析器。三、实验内容(1)语言确定:C-语言,其定义在《编译原理及实践》附录A中。也可选择其它语言,不过要有该语言的详细定义(可仿照C-语言)。一旦选定,不能更改,因为要在以后继续实现编译器的原创 2017-12-13 18:00:47 · 3299 阅读 · 2 评论 -
实验九 LL(1)分析
一、实验目的学习和掌握LL(1)文法的判定和LL(1)分析方法。二、实验任务(1)存储文法的LL(1)分析表; (2)根据LL(1)分析表判断文法是否LL(1)文法; (3)实现LL(1)分析过程。三、实验内容(1)确定LL(1)分析表的文件存储格式。要求为3个以上测试文法准备好相应LL(1)分析表的存储文件。 (2)根据LL(1)分析表判断文法是否LL(1)文法原创 2017-12-13 18:27:58 · 5559 阅读 · 5 评论 -
实验十 LL(1)分析表的构造
一、实验目的学习和掌握FIRST集合、FOLLOW集合的计算,LL(1)分析表的构造方法。二、实验任务(1)存储文法; (2)计算给定文法所有非终结符的FIRST集合; (3)计算给定文法所有非终结符的FOLLOW集合; (4)构造该文法的LL(1)文法的分析表并按实验九的文法格式存储; (5)结合实验九,完成完整的LL(1)分析过程。三、实验内容(1)确定文法原创 2017-12-13 19:55:39 · 10825 阅读 · 11 评论