“编译技术”是计算机类专业特别是计算机软件工程专业的一门重要专业课;
学习编译技术可以了解编译系统的结构,工作流程及编译程序各组成部分的设计原理和实现技术;
尽管“编译程序”是特指将高级程序设计语言翻译成低级语言的软件,但编译程序构造的基本原理和技术也广泛应用于一般软件的设计和实现。通过学习可以掌握编译理论和方法方面的基本知识,也具有设计,实现,分析和维护编译系统等大中型软件方面的初步能力。
基本术语
- 源程序:用源语言写的程序。源语言可以是汇编语言,也可以是高级程序设计语言。
- 目标程序:也成为“结果程序”,是源程序经翻译程序加工以后所生成的程序。目标程序可以用机器语言表示,也可以用汇编语言或其它中间语言表示
- 翻译程序:是指把一个源程序翻译成逻辑上等价的目标程序的程序。源程序为其输入,目标程序为其输出。
- 汇编程序:是指把一个汇编语言写的源程序转换成等价的机器语言表示的目标程序的翻译程序。
- 编译程序:若源程序是高级程序设计语言所写,经翻译程序加工生成目标程序,则翻译程序就成为“编译程序”,也可称为编译器。
- 运行系统:目标程序执行时,需要有一些子程序(如一些连接配置程序及一些链接库等)配合进行工作,由这些子程序组成的一个子程序库称为运行系统。
- 编译系统:编译程序和运行系统合称编译系统。
编译过程
遍
所谓遍,是对源程序或源程序的中间形式从头到尾扫视并完成规定任务的过程。每一遍扫视可完成一个阶段或多个阶段的功能。
采用多遍扫描方式,各遍的工作分工明确,便于多人合作开发,缩短开发周期,同时节省运行时的内存空间,易于提高目标程序的质量。但各遍之间的重复工作多,编译效率低。而单遍扫描的编译程序,编译速度快,效率高,但运行时占用空间大,目标程序质量低。
程序设计语言的四种范型
1.强制(命令)式语言,也称过程式语言(C, FORTRAN);2.函数式语言,也称应用式语言(ML, LISP);3.基于规则的语言,也称逻辑程序设计语言(PROLOG);4.面向对象语言(C#, JAVA)
各范型语言特点与详见分析(转自百度分库)