编译原理
乔卿
寻找灵感而不是寻找答案。
展开
-
湖南大学信息院.编译技术(编译原理)各章节作业参考答案
注:以下各章节作业都是博主自己做的,博主该课程成绩90+,虽难免纰漏,但基本上可以放心参考。第一章第三章第四章第五章第六章第七章第八章原创 2022-01-29 12:11:53 · 2435 阅读 · 2 评论 -
编译原理(龙书):第七章部分题目参考答案
目录7.2.57.2.67.3.27.2.5答:返回值为9,理由如下:将a赋值为3,调用f(a,a),则传递参数为x=3,y=3,在函数体内部,x=x+1得到值为4,y=y+2得到值为5,返回值为x+y,因此返回值为9。7.2.6答:由题意,得:int c=4; int *b=&c; int **a=&b;调用f(c,b,a)之后,将c、b、a的值压栈,即作为传递参数,之后调用函数,则在函数体内,x=4,py=b(指针),ppz原创 2022-01-29 12:03:07 · 3141 阅读 · 0 评论 -
编译原理(龙书):第五章部分题目参考答案
5.1.15.1.25.1.35.2.35.2.45.3.15.4.25.4.3原创 2022-01-29 12:01:16 · 5434 阅读 · 0 评论 -
编译原理(龙书):第四章部分题目参考答案
目录4.2.14.2.24.2.34.3.14.4.14.4.34.4.44.5.14.6.24.6.54.6.64.7.44.7.54.2.14.2.24.2.34.3.14.4.14.4.34.4.44.5.14.6.24.6.54.6.64.7.44.7.5...原创 2022-01-29 11:55:28 · 19732 阅读 · 5 评论 -
编译原理(龙书):第三章部分题目参考答案
目录3.1.13.1.23.3.23.3.53.3.123.4.13.4.23.6.23.6.33.6.43.7.13.7.33.1.13.1.23.3.23.3.53.3.123.4.13.4.23.6.23.6.33.6.43.7.13.7.3原创 2022-01-29 11:40:27 · 12333 阅读 · 1 评论 -
编译原理(龙书):第一章部分题目参考答案
1.1.1What is the difference between a compiler and an interpreter?编译器:负责把一种编程语言编写的源码转换成另外一种计算机代码,后者往往是以二进制的形式保存。这个转换的过程通常的目的是生成可执行的程序。编译器把源代码转换成其他的更低级的代码(例如二进制码、机器码),但是不会执行它。解释器:直接一条一条执行由编程语言或脚本语言编写的代码,并不会把源代码预编译成机器码。解释器会读取源代码,并且直接生成指令让计算机硬件执行,不会输出另外原创 2022-01-29 00:26:43 · 3916 阅读 · 0 评论 -
编译原理(龙书):第六章部分题目参考答案
目录6.1.16.1.26.2.1 (1) (3)6.3.16.4.16.4.26.4.36.4.66.5.16.6.1 (2)6.6.26.6.46.7.16.7.26.7.36.1.16.1.26.2.1 (1) (3)6.3.1答:首先需要弄清楚record的SDT,因此需要先学习教材P242。因此,每个标识符的类型、相对地址如下表所示:6.4.16.4.26.4.3(1) x = a[i] + b[j] 注释语法树:三地址代码为:t1原创 2022-01-29 00:10:07 · 7166 阅读 · 1 评论 -
编译原理:抽象语法树的构造例题
1)2)3)原创 2022-01-27 21:05:20 · 2025 阅读 · 0 评论 -
编译原理(龙书):第八章部分题目参考答案
以下题目答案源自编译原理课程作业。对应于原书第八章题目。原创 2022-01-27 21:02:23 · 3329 阅读 · 1 评论 -
编译原理:求正则表达式的NFA、DFA、状态转换表的例题
原创 2022-01-27 20:45:52 · 3323 阅读 · 2 评论 -
编译原理:在Visual Studio中编译运行TINY编译器源代码
一、实验任务本部分取自编译原理实验一:词法分析器生成工具FLEX在TINY语言上的应用。我们知道,TINY是一门高级程序语言。TINY有它的词法规则和语法规则。TINY既然是一门高级程序语言,就要有TINY语言的编译器。TINY语言的编译器叫TINY编译器。我们需要熟悉TINY编译器的源代码,并根据编译过程的七个步骤,弄清楚TINY编译器源代码中每个函数的功能,重点是找出词法分析部分的源代码。用C语言开发工具Visual Studio,把TINY编译器的源代码文件编译成可执行文件TINY.exe。然后原创 2020-09-18 09:58:29 · 2552 阅读 · 0 评论 -
编译原理:结合例题彻底理解文法四元式与正则文法
这篇博客起源于一道很有趣的正则文法的题目。题目描述如下:已知L={x|x∈{0,1}+,且x中含有1011子串}。构造接收语言L的正则文法。什么是正则文法呢?首先需要了解什么是文法。我们知道,编译原理中的文法G是一个四元式:G = {Vt,Vn,S,P}Vt是一个非空有限集,它的每个元素为终结符号。也就是说Vt是由文法中的终结符构成的集合。Vn是一个非空有限集,它的每个元素称为非终结符号。也就是说Vn是由文法中的非终结符构成的集合。由于一个符号要么是终结符、要么是非终结符,因此V原创 2020-09-18 00:58:03 · 3016 阅读 · 0 评论 -
编译原理:TINY语言编译器词法分析源代码剖析(main.c、scan.c详细注释)
目录一、任务介绍二、分析步骤三、main.c注释四、scan.c注释一、任务介绍本文取自编译原理课程第一次实验,要求找出TINY语言的词法分析器源代码并进行剖析。二、分析步骤解压实验压缩包。可以观察到,TINY语言编译器的源代码的结构为:一个main.c加若干.h头文件加若干.c文件。因此从main.c入手,开始分析。在main.c中,首先声明了全局头文件:#include ...原创 2020-08-06 00:01:23 · 4406 阅读 · 0 评论 -
常见运算符缩写的含义总结:ASSIGN、EQ、LT、GT、PLUS、MINUS、TIMES、OVER、LPAREN、RPAREM、SEMI
在学习编译原理时,遇到一些缩写符号,比如SEMI。后来发现,在很多学科里都有这些简写。一开始不太清楚它的含义,直接百度也搜不到相关的总结,所以写了这篇博客,希望能帮到大家。这里是乔卿的博客。缩写 原单词 原字符 中文含义 ASSIGN assign := 或 = 赋值 EQ equal = 或 == 等于 LT less than < 小与 GT greater than > 大于原创 2020-06-22 00:25:27 · 7590 阅读 · 3 评论 -
编译原理:TINY语言的语法、词法单元与文法的最全总结
下面是一段YINY语言源代码:{ Sample program in TINY language - computes factorial}read x; { input an integer }if 0 < x then { don't compute if x <= 0 } fact := 1; repeat fact := fact * x; x := x - 1 until x = 0; write fact { output fac原创 2020-06-21 21:59:21 · 6671 阅读 · 0 评论