- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 编译原理引论
编译原理课程的地位和作用 地位 是软件技术的基础 是计算机专业的基础课程,是专业必修课 是研究生入学考试的课程之一 作用 编译原理是介绍如何将高级语言程序变换成低级语言程序的方法。 其理论基础坚实,其形式化系统不仅用于编译程序,还大量用于人工智能、多媒体技术、数据库等领域。 学习任务和学习方法 学习任务 掌握编译的理论基础和形式化系统 了解编译的全部过程和具体实现方法(实验) 学习方法 预习、听课、练习、复习 理解基本概念、基本原理和基本算法。 弄懂例题,独立完成课后作业。 认真总结每章的要点,在理解的基础上记忆。 理论结合实践,认真独立地完成实验。 进行大量的阅读,通过阅读加强理解。 成绩考核方法 (1)平时成绩 30% 课堂考勤 10% 平时作业 10% 上机实验 10% (2)考试成绩 70% 第1章 引论 1.1 什么是编译程序 1.2 编译过程和编译程序的结构 1.2.1 编译过程 1.2.2 编译程序结构 1.2.3 编译阶段的组合 1.3 解释程序和一些软件工具 1.3.1 解释程序 1.3.2 处理源程序的软件工具 1.4 程序设计语言范型 程序设计语言 低级语言 特定的计算机系统所固有的语言 即:机器语言、汇编语言 特点:执行效率高、编制效率低 高级语言 与自然语言比较接近的语言 如: 过程式语言:C, Pascal, Fortran, ADA 对象式语言:Java, C++ 等 函数式语言:LISP 逻辑式语言:Prolog 特点:执行效率低、编制效率高 1.1 什么是编译程序 一、编译程序(又称“编译器”) 是语言的翻译器 功能:高级语言的源程序?低级语言的目标程序 重要性:使编程者不必考虑与机器有关的细节 本课程主要研究:顺序过程式语言的编译原理和技术 三、编译程序的分类 一趟编译 多趟编译 具有调试、优化功能的编译 都使用相同的基本编译技术!! 1、20世纪50年代早期:将计算公式翻译成机器码 2、20世纪50年代中期:出现了FORTRAN等一批高级语言 (也就出现了相应的编译程序) 3、20世纪50年代后期:出现了编译程序的编译程序 (即编译程序的自动生成工具) 4、20世纪60年代:用自展技术构造编译程序 (用被编译语言书写其自身的编译程序,1971年PASCAL的成功) 5、并行技术与并行语言的发展:——发展方向 并行语言的并行编译 自动并行编译技术(将串行程序转换成并行程序) 1.2 编译过程和编译程序的结构 一、编译过程 波兰表示问题——Lukasiewicz1929/1951年发明 中缀表示(Infix notation):(a+①b)*(-c+②d)+③e/f 波兰表示(Polish / Prefix / Parenthesis-free / Lukasiewicz notation)——也就是前缀表示 +③*+①a b+②@c d/ef 运算顺序从右向左 逆波兰表示(Reverse Polish / Suffix / Postfix notation) ——也就是后缀表示 a b +①c@ d +②*ef/+ ③ 运算顺序从左向右 1.3 解释程序和一些软件工具 一、解释程序 1.4 程序设计语言范型 一、强制式语言(过程式语言、命令式语言) 1.4 程序设计语言范型 三、基于规则的语言(基于逻辑的语言) 练习 1、程序语言一般分为 (1) 和 (2) 两大类。其中 (3) 与人类自然语言比较接近,(4)又称为面向机器的语言。 A 高级语言 B 专用程序语言 C 低级语言 D 通用程序语言 A C A C 练习 2、面向机器的语言是指(1) ,其特点是(2) 。 (1) A. 用于解决机器硬件设计问题的语言 B. 特定计算机系统所固有的语言 C. 各种计算机系统都通用的语言 D. 只能在一台计算机上使用的语言 (2) A. 程序执行效率低,编写效率低,可读性差 B. 程序执行效率低,编写效率高,可读性强 C. 程序执行效率高,编写效率高,可读性强 D. 程序执行效率高,编写效率低,可读性差 B D 练习 3、编译程序是将 (1) 翻译成 (2) ;汇编程序是将 (3) 翻译成 (4) 。 A.汇编语言程序 B.高级语言程序 C.机器语言程序 D.汇编语言程序 或 机器语言程序 E.汇编语言程序 或 高级语言程序 B D A C 练习 4、编译程序的工作过程可以划分为 (1) 等六个阶段,同时还伴有 (2) 和(3) 。 (1)词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。 (2)表格管理 (3)出错处理 5、编译程序可以发现源程序的全部 (1) 错误和部分 (2
文档评论(0)