LIWensheng,SCST,BUPT第1章编译概述知识点:翻译和解释的概念编译的阶段、任务、及典型结构编译程序的伙伴工具WenshengLiBUPT@20082/60编译概述简介1.1翻译和解释1.2编译的阶段和任务1.3编译有关的其他概念1.4编译程序的伙伴工具1.5编译原理的应用小结WenshengLiBUPT@20083/60简介什么是编译?–把源程序转换成等价的目标程序的过程即是编译。编译程序的设计涉及到的知识:–程序设计语言–形式语言与自动机理论–计算机体系结构–数据结构–算法分析与设计–操作系统–软件工程等WenshengLiBUPT@20084/601.1翻译和解释一、程序设计语言二、翻译程序WenshengLiBUPT@20085/60一、程序设计语言低级语言–机器语言–符号语言汇编语言高级语言–过程性语言—面向用户的语言如:C、Pascal–专用语言—面向问题的语言如:SQL–面向对象的语言如:Java、C++WenshengLiBUPT@20086/60高级语言的优点高级语言独立于机器。所编程序移植性比较好。不必考虑存储单元的分配问题,数据的外部形式转换成机器的内部形式等细节。–用变量描述存储单元具有丰富的数据结构和控制结构。–数据结构:数组、记录等–控制结构:循环、分支、过程调用等。更接近于自然语言。–可读性好,便于维护。编程效率高。WenshengLiBUPT@20087/60二、翻译程序翻译程序扫描所输入的源程序,并将其转换为目标程序,或将源程序直接翻译成结果。翻译程序源程序目标程序或执行结果编译器(即编译程序)把源程序翻译成目标程序的翻译器解释器(即解释程序)直接执行源程序的翻译器WenshengLiBUPT@20088/60编译程序汇编程序汇编语言程序机器语言程序编译程序高级语言程序低级语言程序源程序是用高级语言或汇编语言编写的,目标程序是用目标语言表示的。WenshengLiBUPT@20089/60编译和执行阶段编译时间:实现源程序到目标程序的转换所占用的时间。源程序和数据是在不同时间(即分别在编译阶段和运行阶段)进行处理的。源程序目标程序编译程序编译时数据计算机结果执行时WenshengLiBUPT@200810/60解释程序解释程序解释执行源程序,不生成目标程序同时处理源程序和数据一种有效的方法:先将源程序转换为某种中间形式,然后对中间形式的程序解释执行。源程序数据结果解释程序WenshengLiBUPT@200811/60total:=total+rate*4的解释过程解释程序先将源程序转换成一棵树遍历该树,执行结点上所规定的动作。调用一个过程,执行右边的表达式,计算结果送入total的存...