文档介绍:第1章编译系统概述
二工大温敬和
2008年1月25日
1
程序设计语言的发展
基本术语解释
编译过程概述
出错处理
编译程序的前端和后端
编译程序的实现方式
2
程序设计语言的发展
汇编语言(Assemble Language)
机器语言(Machine Language)
程序设计语言(Programming Language)
3
例计算表达式3*16+2的值,实现该计算的机器语言程序、汇编语言程序和程序设计语言(C语言)程序如下所示。目标计算机的系统结构和汇编语言的使用方法详见本书第7章。
2203
8210
2602
6101
1000
f000
Load R0,3
Mul R0,10
Load R1,2
Add R0,R1
Write R0
Halt
void main(void)
{
cout<<3*16+2;
}
注:10表示16
4
㈠机器语言
机器指令集合称为机器语言。机器指令即二进制数,通常由若干字节构成。
①优点
计算机可直接识别执行
可充分利用硬件特性
②缺点
可读性差
指令系统随机种而异
由于机器指令直接或间接含有绝对地址,增加或减少一条指令,可能会引起多条指令的修改。
编程者需协调内存的使用
所以,机器语言形式的程序编制和维护困难,限制了计算机的推广和应用。
5
㈡汇编语言
用记忆符取代二进制位,存储地址和汇编语句的序号可用符号名表示。
①优点
用符号取代二进制数,提高了程序的可理解性。
性能较好的汇编语言,可用符号名来表示存储地址和汇编语句序号,这样避免了在汇编语句中绝对地址的出现。
可充分利用硬件特性
所以,汇编语言在一定程度上降低了程序编制和维护的难度。
②缺点
汇编语句和机器指令基本上是一对一的,所以汇编语言的编程效率并没有质的提高。
和机器语言一样,汇编语言依附于目标计算机。
需汇编程序,将汇编语言译成机器语言。
6
㈢程序设计语言
程序设计语言又称高级语言。程序设计语言接近于英语,相当于工程语言。目前计算机系统一般含有多个程序设计语言的翻译程序(例VC、VB等),甚至对同一个程序设计语言配备了多个不同性能的翻译程序,供用户选择使用。
①优点
独立于具体计算机,面向过程(函数)或对象。
程序设计语言接近于英语,可理解性好。
数据类型丰富,各种功能的语句齐备,一条语句至少相当于几十条汇编语句。
所以,程序设计语言极大地提高了编程效率,大幅度地降低了编程难度。
②缺点
需翻译程序,将高级语言译成机器语言或汇编语言。
对硬件操作困难,高级语言通常提供汇编语言接口。
7
基本术语解释
㈠源语言和源程序(Source Language and Source Program)
用程序设计语言书写的程序,称为源程序,该程序设计语言称为源语言。源程序通常用编缉程序输入,用字符(ASCII码)表示,以文本文件形式存储。
㈡文本文件(Text File)
文本文件的内容由94个图形字符‘!’-‘~’(33-126)和4个控制字符换行(10)、回车(13)、空格(32)、TAB(9)构成,文本文件又称为ASCII码文件,扩展名通常为TXT,文件尾用控制字符EOF(26)指示。当换行和回车二个控制字符从文本文件读入内存,在C语言中是用一个字符(换行)表示。
8
㈢目标语言和目标程序(Target Language and Target Program)
目标语言可以是机器语言(二进制数),也可以是汇编语言(字符),或者是其它中间语言(字符),但最终结果必定是机器语言。机器语言程序用二进制文件存储,汇编语言或中间语言程序用文本文件存储。
目标程序是经翻译程序加工后用目标语言表示的程序。
㈣二进制文件(Binary File)
二进制文件由机器指令即二进制数构成,因二进制数可能是26(文件结束控制符),故文件尾用文件长度(文件的字节数)指示,扩展名通常为EXE。
9
㈤翻译程序(Translator)
将源程序译成逻辑上等价的目标程序的程序。翻译程序有二种工作方式:编译和解释。
解释程序
Interpreter
源程序
结果
输入数据
解释、执行
解释方式主要特点是:用户程序是消极的。用户程序运行时,控制点在解释程序,即用户程序的执行离不开解释程序。
①解释方式(Interpret)
以源程序作为输入,输入一句解释执行一句,不产生完整的目标程序,相应的翻译程序称为解释程序(Interpreter) 。
工作方式如下图所示:
10