第5章 语法制导翻译
- 格式:ppt
- 大小:159.50 KB
- 文档页数:47
编译原理(龙书)课后习题解答(详细)编译原理(龙书)课后题解答第一章1.1.1 :翻译和编译的区别?答:翻译通常指自然语言的翻译,将一种自然语言的表述翻译成另一种自然语言的表述,而编译指的是将一种高级语言翻译为机器语言(或汇编语言)的过程。
1.1.2 :简述编译器的工作过程?答:编译器的工作过程包括以下三个阶段:(1) 词法分析:将输入的字符流分解成一个个的单词符号,构成一个单词符号序列;(2) 语法分析:根据语法规则分析单词符号序列中各个单词之间的关系,确定它们的语法结构,并生成抽象语法树;(3) 代码生成:根据抽象语法树生成目标程序(机器语言或汇编语言),并输出执行文件。
1.2.1 :解释器和编译器的区别?答:解释器和编译器的主要区别在于执行方式。
编译器将源程序编译成机器语言或汇编语言等,在运行时无需重新编译,程序会一次性运行完毕;而解释器则是边翻译边执行,每次执行都需要进行一次翻译,一次只执行一部分。
1.2.2 :Java语言采用的是解释执行还是编译执行?答:Java一般是编译成字节码的形式,然后由Java虚拟机(JVM)进行解释执行。
但是,Java也有JIT(即时编译器)的存在,当某一段代码被多次执行时,JIT会将其编译成机器语言,提升代码的执行效率。
第二章2.1.1 :使用BNF范式定义简单的加法表达式和乘法表达式答:<加法表达式> ::= <加法表达式> "+" <乘法表达式> | <乘法表达式><乘法表达式> ::= <乘法表达式> "*" <单项式> | <单项式><单项式> ::= <数字> | "(" <加法表达式> ")"2.2.3 :什么是自下而上分析?答:自下而上分析是指从输入字符串出发,自底向上构造推导过程,直到推导出起始符号。
第一章绪论1、填空题(1)程序设计语言中参数传递的方式有_________、_________、_________和_________。
(2)符号表的构造和处理方法有_________、_________和_________。
2、什么是源程序?什么是目标程序?3、画图说明编译程序主要由哪几个主要部分组成?各部分的功能是什么?第二章文法和语言1、一:文法G1: E→ET+|T T→TF*|F F→FP↑|P P→E|i(1)试证明符号串TET+*i↑是G1的一个句型(要求画出语法树). (2)写出该句型的所有短语,简单短句和句柄.2、已知文法G2: T→T*F|F F→(T)|i(1)试给出语句(i*i)#的自上而下分析过程(填下表); (2)画出对应的语法树,指出每一步归纳的句柄.3、已知文法G(E) E→T|E+T T→F|T*F F→(E)|i (1)给出句型(T *F+i)的最右推导及画出语法树;(2)给出句型(T *F+i)的短语、素短语。
4、写一个文法,使其语言是奇数集,且每个奇数不以0开头。
5、目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?6、已知文法G(S) S→a|∧|(T) T→T,S|S 写出句子((a,a),a)的规范归约过程及每一步的句柄。
7、生成语言l={albmclanbn l>=0,m>=1,n>=2 }的文法是什么?它是chomsky那一型文法?8、设有字母表A1={a,b,…,z},A2={0,1,…,9},试回答下列问题: (1) 字母表A1上长度为2的符号串有多少个? (2) 集合A1A2含有多少个元素? (3) 列出集合A1 (A1∪A2)*中的全部长度不大于3的符号串。
9、设已给文法G=(VN,VT,P,S),其中: VN={S} VT={a1,a2,…,an,∨,∧,~, [,]} P={S→ai|i=1,2,…,n}∪{S→~S,S→[S∨S],S→[S∧S]},试指出此文法所产生的语言。