第一章 编译程序介绍.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 编译程序概述 张晶 2011.3 问卷 对编译程序的了解程度? 有没有接触过编译器? 可不可以不用编译器? 编译器可以帮助我们做什么? 编程过程中遇到过哪些编译错误? 出现非法字符; 标识符未声明的错误; 标识符未定义的错误; 标识符使用和声明不匹配的错误; 单词拼写错误; 符号使用错误; …… 第1章 编译程序概述 1.1 程序设计语言 1.2 程序设计语言的实现方式 1.3 编译程序的伙伴程序 1.4 编译程序的功能结构分解 1.5 编译程序的设计与实现 1.1 程序设计语言 1.1 程序设计语言 历史 1800,第一个程序:Jacquard loom 第一个程序员:Analytical engine,Ada Lovelace; 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); 数据库语言(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) 程序中指明如何完成一个计算任务 FORTRAN, PASCAL, C, C++, C#, Java 函数式(Functional programming languages--declarative) 程序中指明要进行哪些计算 LISP, HASKELL, ML 逻辑式(Logical programming languages--declarative) 事实+推理规则 PROLOG 对象式(Object-oriented programming languages) 支持面向对象编程 Smalltalk, Java, C++ 机器语言和汇编语言的例子 机器语言语句: 汇编语言语句: 过程式和函数式程序设计语言 逻辑式程序设计语言 1.1 程序设计语言 不同的程序设计语言机制(函数式、过程式、逻辑式、对象式),需要采用不同的技术编写编译程序 过程式语言的编译是对象式语言编译的基础 本课程重点关注过程式程序设计语言编译程序的构造原理和技术 第1章 编译程序概述 1.1 程序设计语言 1.2 程序设计语言的实现方式 1.3 编译程序的伙伴程序 1.4 编译程序的功能结构分解 1.5 编译程序的设计与实现 1.2 程序设计语言的实现方式 1.2 程序设计语言的实现方式 编译器(Compiler):编译器将某种语言(源语言)编写的程序翻译成 语义等价的另一种语言(目标语言)编写的程序。 目标程序若是可执行的机器语言程序,则可以被用户调用,处理输入并产生输出。 目标程序若是汇编语言的程序,则须经汇编器汇编后方可执行。 编译器的重要任务之一是报告它在翻译过程中发现的源程序中的错误。 1.2 程序设计语言的实现方式 解释器(Interpreter):解释器直接利用用户提供的输入执行源程序中指定的操作。 解释过程中若发现错误,则返回修改源程序,修改后重新解释执行。 1.2 程序设计语言的实现方式 编译器和解释器的比较 相同点 使用相同的实现技术 区别 实现机制: 翻译 (程序 to 程序)vs. 解释(指令 to 指令序列) 执行效率: 高 vs. 低 存储代价: 少 vs. 多 错误诊断:差 vs. 好 解释器相对于编译器的优势 可移植性好: Java 支持交互式程序设计,更具通用性 错误诊断效果好 编译器的优势在于:目标程序的执行速度比解

文档评论(0)

awang118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档