第1讲编译原理
- 格式:ppt
- 大小:1000.50 KB
- 文档页数:61
第一章引论知识结构:翻译程序的分类编译程序编译方法与解释方法编译程序的分类编译过程编译过程编译程序的组成编译程序的功能引言编译程序逻辑结构编译程序的结构编译程序组织方式编译程序的划分编译程序的设计表示形式编译程序的生成编译程序的移植第一节什么叫编译程序一、程序设计语言的分类1、程序源程序:用源语言(基本符号,关键字)编写的程序,它是翻译程序加工的对象。
中间程序(中间代码):是一种结构简单,含义明确的记号系统。
目标程序:源语言程序经过翻译程序加工最后得到的目标语言程序。
翻译程序:将一种语言程序(源程序)转换成另一种语言程序(目标程序),后者与前者在逻辑上是等价的。
被翻译的程序翻译后的结果程序2、程序设计语言程序设计语言是用来编写程序的工具,可分为两大类:⑴低级语言机器语言:计算机的指令系统,可以被计算机直接执行的语言。
汇编语言:依赖于计算机抽象出来的一种符号语言,它是机器指令系统的符号化,具有宏指令功能的面向机器语言。
⑵高级语言不依赖计算机,为描述实际问题需要而设计的一个记号系统。
二、翻译程序的分类编译程序:将源程序翻译成等价的目标程序(汇编语言或机器语言)。
解释程序:按源程序中语句动态顺序,边解释,边执行。
汇编程序:将汇编语言编写的程序翻译成机器指令序列。
三、高级语言的翻译方式编译方式(类似笔译):⑴编译阶段把源程序翻译成等价的目标程序(汇编语言,机器语言)。
①汇编语言(输出结果)编译阶段汇编阶段②机器语言(输出结果)⑵运行阶段编译程序与运行系统合称编译系统。
解释方式(类似口译):对源程序的每一个语句边解释,边执行,不产生目标程序。
四、编译程序的特点1、翻译过程是一种功能上等价的翻译。
2、输出结果是(机器语言或汇编语言)低级语言。
3、编译程序与具体的语言和机器有关。
4、被编译的源程序是被加工的对象,目标程序是加工的结果。
五、编译程序与解释程序的区别编译程序与解释程序的区别在于是否生成目标代码。
六、高级语言与翻译的关系七、编译程序的分类1、诊断编译程序用于帮助程序开发和调试的编译程序。
第一章概述1.1 编译程序的概念计算机硬件的最核心部件是CPU(Computer Processor Unit)即中央处理器,CPU能够执行的指令是二进制形式的指令即机器指令,机器指令的集合称机器语言。
用机器指令书写的程序可以说无法阅读,程序设计的效率极低甚至可以说无法进行程序设计。
机器指令的助记符形式称汇编指令,比如MOV是数据传送指令,助记符形式的汇编指令的集合称汇编语言。
汇编语言的出现使得程序设计的效率有所提高,即使现在,汇编语言仍是编制设备驱动程序的重要工具。
但是,汇编语言书写的程序不能直接在CPU中运行,需要汇编程序(Assembler)把汇编语言书写的源程序(Source Program)汇编成机器语言程序才能在CPU中运行。
汇编的过程可以用下图表示:(源程序)(目标程序)汇编语言与机器语言类似,仍然依赖于计算机,使用起来繁琐、易出错、可读必差、缺乏通用性,因此面向过程的高级语言、面向对象的高级语言相继出现了。
例如面向过程的高级语言:Basic、Pascal、Fortran、C语言等等;面向对象的高级语言Visual Basic、Visual C++、Delphi、PowerBuilder等等。
把高级语言翻译(Translator)成汇编语言程序或机器语言程序的程序称为编译程序(Compiler)。
汇编语言与机器语言亦称低级语言。
对高级语言书写的源程序进行编译的过程可以用下图表示:编译程序翻译目标程序(Object Program)一般指低级语言程序。
综上所述,可以看出编译程序在计算机系统中的重要地位。
不同的高级程序设计语言需要不同的编译程序,同一种高级程序设计语言在不同的计算机上需要不同的编译程序。
有了编译程序,程序设计人员就不需要考虑与计算机硬件有关的绝大部分甚至全部细节,使程序设计独立与计算机,即同一个高级语言源程序可以在不同的计算机上运行。
在计算机上运行一个高级语言源程序一般分为两步:第一步是通过编译程序把源程序翻译成目标程序;第二步是运行或称执行目标程序。