11-第11章-编译系统和运行系统-编译原理-中国科技大学(共13讲)讲解
- 格式:ppt
- 大小:637.00 KB
- 文档页数:70
可编辑修改精选全文完整版1什么事编译程序?:什么是解解释程序?它们的区别?编译程序就是指这样的一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序。
解释程序也是一种翻译程序,它将原程序作为输入,一条语句一条语句地读入并解释执行。
区别:编译程序将源程序翻译成目标程序后在执行该目标程序:解释程序则逐条读出源程序中的语句并解释执行。
2什么是扫描器?:扫描器就是词法分析器,他接受输入的源程序,队源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
通常把此法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。
每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。
3.正规表达是到上下无关文法的转换方法是什么?:正规表达式所描述的语言结构均可以用上下文无关文法描述,反之则不一定。
方法如下:1.构造正规表达式的NFA;2.若0为初始状态,则A为开始符号;3.如果存在映射关系f(i,a)=J,则定义产生式Ai→aAj 4. 如果存在映射关系f(i,ξ)=J,则定义产生式Ai→Aj。
5.若1为终态,,则定义产生式Ai→ξ。
4.什么是语法树?:对文法G[s]:(Vt,Vn,S, )满足下列条件的树称为G[s]的语法树。
(1)每个结点用G[s]的一个终结符或非终结符标记。
(2)根据点用文法开始符S标记。
(3)内部结点一定是非终结符,如果某内部结点A有n个分支,它的所有子结点从左至右依次标记为X1,X2,X3……. Xn,则A→X1,X2,X3……. Xn一定是文法G[s]的一条产生式。
(4)如果某节点标记为ξ,则它必为叶结点是父结点的唯一子结点。
5.自下而上分析原理是什么?:自下而上是就是自左至右扫描输入串,自下而上进行分析:通过反复查找当前句型的句柄(最左直接短语),并使用产生式规则将找到的句柄归约为相应的非终结符。
中科大编译原理编译原理是计算机科学与技术中的一门重要课程,它研究的是如何将高级程序语言翻译成计算机能够理解和执行的机器语言。
中科大编译原理课程作为该领域的优秀代表,为学生提供了系统化、全面的编译原理知识。
本文将介绍中科大编译原理课程的主要内容和教学特色。
一、编译原理的基本概念和目标编译原理是计算机科学中的一门重要课程,其主要研究内容是编译程序的设计和实现。
编译程序是一种将高级语言程序转换成机器语言程序的软件工具。
编译原理的主要目标是设计和实现高效、可靠的编译程序,使得程序员能够用高级语言编写程序,而不需要了解底层的计算机硬件细节。
中科大编译原理课程的主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。
下面将对这些内容进行简要介绍。
1. 词法分析词法分析是编译过程的第一步,它将源程序转换成一个个的词素,并将其分类成不同的词法单元,如标识符、关键字、常量和运算符等。
词法分析器通常使用正则表达式和有限自动机来实现。
2. 语法分析语法分析是编译过程的第二步,它将词法分析器输出的词法单元序列转换成抽象语法树(AST)。
语法分析器通常使用上下文无关文法和自上而下或自下而上的分析方法来实现。
3. 语义分析语义分析是编译过程的第三步,它对语法树进行静态语义检查,并生成中间代码。
语义分析器通常对类型检查、作用域检查和语义规则检查等进行处理。
4. 中间代码生成中间代码生成是编译过程的第四步,它将语法树转换成中间代码表示形式,如三地址代码、虚拟机代码或抽象机器代码等。
中间代码是一种独立于机器的中间表示形式,它方便进行代码优化和目标代码生成。
5. 代码优化代码优化是编译过程的第五步,它通过对中间代码进行静态分析和变换,以提高程序的执行效率和资源利用率。
代码优化技术包括常量传播、公共子表达式消除、循环优化和指令调度等。
6. 目标代码生成目标代码生成是编译过程的最后一步,它将中间代码转换成目标机器的机器语言程序。