《编译程序介绍》PPT课件.ppt
《《编译程序介绍》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《编译程序介绍》PPT课件.ppt(42页珍藏版)》请在三一办公上搜索。
1、第1章 编译程序概述,张晶2011.3,问卷,对编译程序的了解程度?有没有接触过编译器?可不可以不用编译器?编译器可以帮助我们做什么?编程过程中遇到过哪些编译错误?出现非法字符;标识符未声明的错误;标识符未定义的错误;标识符使用和声明不匹配的错误;单词拼写错误;符号使用错误;,第1章 编译程序概述,1.1 程序设计语言1.2 程序设计语言的实现方式1.3 编译程序的伙伴程序1.4 编译程序的功能结构分解1.5 编译程序的设计与实现,1.1 程序设计语言,1.1 程序设计语言,历史1800,第一个程序:Jacquard loom 第一个程序员:Analytical engine,Ada Love
2、lace;Grace Hopper;董铁宝张绮霞1950,第一个程序设计语言(FORTRAN;COBOL;Algol60;LISP)1960,涌现了上百种程序设计语言(特殊目的语言;通用语言)1970,简化,抽象(PASCAL;C;)1980,面向对象语言(Ada;Modular;Smalltalk;C+)1990,网络语言(Java),Libraries,脚本语言(Perl;Javascript)2000,说明语言(XML,UML,Z),1.1 程序设计语言,分类(几千种程序设计语言)功能科学计算(Fortran);商业数据处理(Cobol);表处理(Lisp);格式处理(Latex);数据
3、库语言(SQL);抽象级别低级机器语言&汇编语言高级(不同范例paradigms)划代(ith-Generation Language,iGL)1GL:机器语言2GL:汇编语言3GL:高级程序设计语言,如FORTRAN,ALGOL,BASIC,LISP等;4GL:为特定应用设计的语言,如数据库查询语言SQL,文本排版Postscript等;5GL:指基于逻辑和约束的语言,如Prolog,OPS5,1.1 程序设计语言,高级程序语言(不同范例paradigms)过程式(Procedural programming languages-imperative)程序中指明如何完成一个计算任务FORTR
4、AN,PASCAL,C,C+,C#,Java函数式(Functional programming languages-declarative)程序中指明要进行哪些计算LISP,HASKELL,ML逻辑式(Logical programming languages-declarative)事实+推理规则PROLOG对象式(Object-oriented programming languages)支持面向对象编程Smalltalk,Java,C+,机器语言和汇编语言的例子,机器语言语句:汇编语言语句:,C7 06 0000 0002,MOV X,2,表示在IBM PC上使用的Intel 8x86
5、处理器将数字2移至地址0000(16进制),假设X的存储地址是0000,过程式和函数式程序设计语言,过程式语言(C语言):#define TYPE intvoid square(TYPE x,int n)for(int i=0;in;i+)*(x+i)*=*(x+i);,求n个数的平方。,函数式语言(Haskell):fun square()=|square(a:x)=a*a:square(x),逻辑式程序设计语言,domains person,another=symbolpredicates likes(person,another).clauses likes(jack,sussan).l
6、ikes(john,marry).likes(tom,cathy).likes(mark,ellen).likes(bob,tom).likes(richard,ellen).likes(tom,ellen).likes(jack,X)if likes(tom,X).,【事实】Jack 喜欢 Sussan John 喜欢 Marry Tom 喜欢 Cathy Mark 喜欢 Ellen Tom 喜欢 Ellen【规则】如果Tom喜欢X,那么Jack喜欢X,likes(jack,ellen)?,1.1 程序设计语言,不同的程序设计语言机制(函数式、过程式、逻辑式、对象式),需要采用不同的技术编写
7、编译程序过程式语言的编译是对象式语言编译的基础本课程重点关注过程式程序设计语言编译程序的构造原理和技术,第1章 编译程序概述,1.1 程序设计语言1.2 程序设计语言的实现方式1.3 编译程序的伙伴程序1.4 编译程序的功能结构分解1.5 编译程序的设计与实现,1.2 程序设计语言的实现方式,1.2 程序设计语言的实现方式,编译器(Compiler):编译器将某种语言(源语言)编写的程序翻译成 语义等价的另一种语言(目标语言)编写的程序。目标程序若是可执行的机器语言程序,则可以被用户调用,处理输入并产生输出。目标程序若是汇编语言的程序,则须经汇编器汇编后方可执行。编译器的重要任务之一是报告它在
8、翻译过程中发现的源程序中的错误。,编译器,输入,源程序,目标程序,目标程序,输出(结果),错误,1.2 程序设计语言的实现方式,解释器(Interpreter):解释器直接利用用户提供的输入执行源程序中指定的操作。解释过程中若发现错误,则返回修改源程序,修改后重新解释执行。,解释器,输入,程序,输出(结果),1.2 程序设计语言的实现方式,编译器和解释器的比较相同点使用相同的实现技术区别实现机制:翻译(程序 to 程序)vs.解释(指令 to 指令序列)执行效率:高 vs.低存储代价:少 vs.多错误诊断:差 vs.好 解释器相对于编译器的优势可移植性好:Java支持交互式程序设计,更具通用性
9、错误诊断效果好编译器的优势在于:目标程序的执行速度比解释器快很多,最大区别/根本区别:目标程序,1.2 程序设计语言的实现方式,程序设计语言的实现方式编译方式解释方式转换方式:编译器的开发代价是非常昂贵的,在可能的情况下,可以将一种语言的程序转换成另一种语言的程序,利用另一种语言的编译器进行编译前提条件:两种语言在语法和语义上很近似,或者一种语言是另一种语言的扩展实例:C+C,L源程序,转换器,L源程序,L编译器,目标程序,第1章 编译程序概述,1.1 程序设计语言1.2 程序设计语言的实现方式1.3 编译程序的伙伴程序1.4 编译程序的功能结构分解1.5 编译程序的设计与实现,1.3 编译程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译程序介绍 编译程序 介绍 PPT 课件
链接地址:https://www.31ppt.com/p-5569024.html