导图社区 第一章 编译概述
编译原理(第4版),第一章内容为编译程序和翻译程序,编译过程和编译程序的基本结构,编译程序的生成方式,编译技术在软件开发中的应用。
计算机网络第一章概述,主要介绍计算机网络的基本知识,包括网络发展历史,网络的体系结构,拓扑结构及网络的主要性能指标等内容
第四章 设计工程思维导图,此脑图包含软件设计工程概述,软件设计原则,软件体系结构设计,部件级设计技术,设计规约与设计评审,用于复习预习。
第2章ASP.NET概述,内容为.NET开发,ASP.NET运行环境简介,开发工具Visual Studio,第一个ASP.NET程序等内容。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
【华政插班生】文学常识-两宋
编译概述
翻译程序和编译程序
翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。
编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。
源程序(高级语言程序)→编译程序→目标程序(汇编语言或者机器语言程序)
采用编译方式在计算机上执行用高级语言编写的程序,需分阶段进行 一般分为两大阶段,即编译阶段和运行阶段
第一种情况
第二种情况
如果编译阶段生成的目标程序不是机器语言程序,而是汇编语言程序,则程序的 执行需分三个阶段,即编译阶段、汇编阶段和运行阶段
用高级语言编写的程序也可通过解释程序来执行。解释程序也是一种翻译程序,它将源程序作为输入并执行之,即边翻译边执行。它与编译程序的主要区别是在解释程序的执行过程中不产生目标程序,而是按照源语言的定义解释执行源程序本身。
编译过程和编译程序的基本结构
编译程序是将一种语言形式翻译成另一种语言形式,因此,其工作过程一般可划分为如下五个阶段:
词法分析
词法分析阶段的任务是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个一个具有独立意义的单词( 也称单词符号, 简称符号 )。
词法规则是单词符号的形成规则,它规定了哪样的字符串构成一个单词符号。
例如
语法分析
语法分析的任务是在词法分析的基础上, 根据语言的语法规则从单词符号串中识别出各种语法单位 ( 如表 达式、说明、语句等 ) ,并进行语法检查,即检查各种语法单位在语法结构上的正确性。
语言的语法规则规定了如何从单词符号形成语法单位,语法规则是语法单位的形成规则。
单词符号串 s=2*3.1416 * r *(h+r)中,“s” 是<变量>
单词符号串“2 * 3.1416 * r *(h+r)”组合成<表达式>这样的语法单位 , 由<变量>=<表达式>构成<赋值语句>这样的语法单位。
语义分析和中间代码生成
语义分析的任务是首先对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式 (比源语言更接近于目标语言的一种中间代码或直接用目标语言 ) 来描述这种语义。
将s = 2*3.1416 * r *(h+r)翻译成如下形式的四元式中间代码:
将源语言形式的赋值语句翻译为四元式表示的另一种语言形式,这两种语言在结构形式上是不同的,但在语义上是等价的
代码优化
代码优化的任务是对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效即省时间和空间的目标代码。优化主要包括局部优化和循环优化等,例如上述四元式经局部优化后得:
目标代码生成
目标代码生成的任务是将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
表格管理和错误处理
一个好的编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正,因此,在编译程序中还必须有一个出错处理程序。
编译程序的生成方式
编译程序是一个复杂的系统程序,要生成一个编译程序一般要考虑以下几方面:
对源语言和目标语言认真分析
设计编译算法
选择语言编制程序
调试编译程序
提交相关文档资料
编译程序的自动生成
生成编译程序的方法还常采用自编译方式和移植方式。
编译技术在软件开发中的应用
例如,设计词法分析器的串匹配技术已用于正文编辑器、信息检索系统和模式识别程序;上下文无关文法和语法制导定义已用于创建诸如排版、绘图系统和语言结构化编辑器中,代码优化技术已用于程序验证器和从非结构化的程序产生结构化程序的编程之中。
编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法
重点内容
什么是编译程序
编译的过程
词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成
编译程序的结构