
=>编译原理
文章平均质量分 95
Compilers Principles
飞翔的哈士奇
帐号已弃更,转Github(DelinQu) — 2021.05
展开
-
编译原理实验六 / 代码生成器
学习经典的代码生成器代码已开源: https://github.com/LinXiaoDe/Quary/tree/master/lab6一.实验目的学习已有编译器的经典代码生成源程序二.实验任务阅读已有编译器的经典代码生成源程序,并测试代码生成器的输出三.实验内容选择一个编译器,如:TINY或PL/0,其它编译器也可(需自备源代码)。阅读TM虚拟机的有关文档(请参考《编译原理及实践》第8.7节)。了解TM机的指令结构与寻址方式等相关内容。阅读代码生成源程序,加上你自己的理原创 2021-01-25 20:13:15 · 2961 阅读 · 1 评论 -
编译原理实验五 / 语义分析器
实验五 语义分析器代码已开源:https://github.com/LinXiaoDe/Quary/tree/master/lab5一. 学习经典的语义分析器(2小时)一、实验目的学习已有编译器的经典语义分析源程序。二、实验任务阅读已有编译器的经典语义分析源程序,并测试语义分析器的输出。三、实验内容(1)选择一个编译器:选择一个编译器,如:TINY或其它编译器也可(需自备源代码)。我所选用的是TINY源码进行分析,目录结构如下,其中语义分析器在loucomp文件夹下的analyz原创 2021-01-25 19:53:23 · 5069 阅读 · 0 评论 -
编译原理实验四 / 编译器自动生成工具
实验四 编译器自动生成工具1.词法分析程序自动生成工具的使用(4小时)一、实验目的学习使用词法分析自动工具LEX。二、实验任务使用LEX工具实现编译器的词法分析程序。三、实验内容(1)学习LEX工具的用法。(a)学习文档LEX的用法.pdf参考地址:https://blog.youkuaiyun.com/wp1603710463/article/details/50365495 Lex源程序必须按照Lex语言的规范来写,其核心是一组词法规则(正规式)。一般而言,一个Lex源程序分为三部分,三原创 2021-01-25 17:58:06 · 1881 阅读 · 0 评论 -
编译原理实验三 / 语法分析程序实现
实验要求实验三 语法分析程序(一)学习经典的语法分析器一、实验目的学习已有编译器的经典语法分析源程序。二、实验任务阅读已有编译器的经典语法分析源程序,并测试语法分析器的输出。三、实验内容(1)选择一个编译器,如:TINY,其它编译器也可(需自备源代码)。(2)阅读语法分析源程序,加上你自己的理解。尤其要求对相关函数与重要变量的作用与功能进行稍微详细的描述。若能加上学习心得则更好。TINY语言请参考《编译原理及实践》第3.7节。对TINY语言要特别注意抽象语法树的定义与应用。(3)测试语原创 2021-01-25 17:30:22 · 7186 阅读 · 0 评论 -
编译原理实验2 / NFA确定化和DFA最小化
实验要求第一部分 NFA确定化一、实验目的学习和掌握将NFA转为DFA的子集构造法。二、实验任务(1)存储NFA与DFA;(2)编程实现子集构造法将NFA转换成DFA。三、实验内容(1)确定NFA与DFA的存储格式。要求为3个以上测试NFA准备好相应有限自动机的存储文件。(可利用实验一(二)的基础)(2)用C或C++语言编写将NFA转换成DFA的子集构造法的程序。(3)测试验证程序的正确性。测试不易。可求出NFA与DFA的语言集合的某个子集(如长度小于某个N),再证实两.原创 2021-01-25 16:56:37 · 3955 阅读 · 0 评论 -
自定义一门语言——Quary
Quary语言的定义是一个很有挑战性的过程,我模仿C—和python成功定义了它(也许并不完备,随着实验的推进我会一一完善),定义语言的过程中,我对BNF语法有了新的了解和学习。为什么定义这门语言?一开始,我的想法很简单,纯粹是觉得,仿照TINY,仿照C—太无聊了!为什么不自己定义一门语言呢?随着我对语言的深入理解,现在发现,这真的是一个很有挑战性的过程,在以后的语法分析,代码优化…过程中,将会遇到更多的挑战,继续加油吧!我的设想是,定义一门自己的语言Quary,创造出自己的编译器 QueryCompi..原创 2020-11-10 22:18:56 · 1185 阅读 · 0 评论 -
编译原理实验一/2 词法分析程序——我的Quary编译器
在编译原理的实验1第二部分中,要求阅读已有编译器的经典词法分析源程序,用C或C++语言编写一门语言的词法分析器。DFA的代码化,一堆case语句堆上去,还是用C来模拟编译器,多么无聊!大概,这个实验就是C的大模拟吧,但是,当我看到鼓励自己定义一门语言的时候,瞬间就精神了!如果我自己定义一门语言,那将多么有趣!于是乎,Quary语言就诞生了!(这个名字,没有太多含义,纯粹是好听!emmm,还有Q是我名字的第一个字母)毫无艺术感的人花了几分钟在网页上无脑白嫖做了个LOGO,但是效果还真不错!http..原创 2020-11-07 00:55:56 · 1653 阅读 · 0 评论 -
编译原理实验一/1 基于C语言的TINY编译器与TM虚拟机 for Linux
文章目录实验一 / 第一部分实验内容:实验环境资源源码部署实验步骤实验一 / 第一部分实验内容:1.生成TINY编译器2.生成TM虚拟机3.通过条件编译生成部分编译器4.使用flex生成TINY编译器5.使用bison生成TINY编译器实验环境按照老师的要求,以及课程中心提供的所有环境资料,这个实验本应在win下运行,搭配VC++。Linux用户只能自己手写Makefile,强迁Linux生产环境。还好搜寻了近一天找到了这个实验的所有源代码,我又快乐了!这个实验,我结合了自己的一些原创 2020-10-31 00:35:26 · 2305 阅读 · 0 评论