- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理及实践-第1章 概论
编译原理 任课教师: 肖少拥 邮箱:xiaoshaoyong@ 教学资料:5 电话 讲述程序设计语言转换成可执行代码时使用的技术、数据结构和算法。 参考书: 1. 虚拟机的设计与实现(C-C++) 机械工业出版社,[美]Blunden著;杨涛等译 2. 编译原理 西北工业大学出版社 蒋立源 康慕宁 主编 西北工业大学网络精品课程---编译原理网址: /jp2005/20/kcwz/index.htm 3. 编译原理 机械工业出版社 龙书 李建中 姜守旭译 课程内容 第一章概论 第二章词法分析 第三章上下文无关文法及分析 第四章自上而下的语法分析 第五章自下而上的语法分析 第六章语义分析 第七章运行时环境 第八章代码生成 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.1 编译原理的重要性 编译器是将一种语言翻译为另一种语言的计算机程序。 编译器是一种相当复杂的程序,其代码的长度可从10 000行到1 000 000行不等。 在计算机科学的课程中,编译原理占有非常重要的位置: 学习该课程有助于理解程序设计语言,迅速掌握新的语言工具。 如果软件“工程师”掌握一定的编译原理知识,他就懂得程序是如何运作的,写出更高效的程序;同时可以迅速掌握新的语言工具。 包含许多软件技术对于从事软件设计很有价值。 建立词法分析器的串匹配技术已用于文本编辑器、信息检索系统,模式识别器,软件的建模和测试领域。 上下文无关文法和语法制导定义等概念已用于诸如书的排版、绘图等软件系统中。 计算机应用程序中经常遇到的一个任务就是命令解释程序和界面程序的开发(例如:手机微浏览器的开发),这比编译器要小,但使用的却是相同的技术。 代码优化器已用于程序验证器和从非结构化程序产生结构化程序的程序验证器中。 蕴含着计算机学科中解决问题的思路、抽象问题和解决问题的方法。 编写编译器的过程,实际上就是对程序进行全局抽象的过程,可以使我们对编程有一个全面和高层次的理解。 计算机理论的三个传统的核心领域:自动机、可计算性和复杂性(计算机安全)。 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.2 编译器(compiler)的发展 第一代编程语言:在20世纪40年代,冯?诺伊曼 存储—程序计算机,编写一串代码或程序成为必要,开始用机器语言编写程序。 例如:c7 06 0000 0002(16进制) 第一代编程语言是二进制机器码,即0、1的二进制序列; 机器可以直接执行和处理用机器语言编写的程序。 汇编语言以符号的形式给出指令及存储地址,大大简化了编程过程,直到现在,在一些实时性要求较高及希望使用计算机特定硬件结构特性的场合仍用汇编语言编程; 汇编语言也有许多缺点:编写、阅读和理解都比较困难;而且严格依赖于特定的机器,为一台计算机编写的代码在应用于另一台计算机时必须完全重写。 我们把严格依赖于特定机器的机器语言、汇编语言称为低级语言。 第三代编程语言的出现:发展编程技术的下一个步骤,高级语言:类似于数学定义或自然语言的简洁形式来编写程序,与机器无关,例如:x=2; 1.2 编译器(compiler)的发展(续) 1954年至1957年期间 IBM 的John Backus 带领的一个研究小组开发了FORTRAN语言及其编译器。 同时,Noam Chomsky 开始了他的自然语言结构的研究。他提出了一种用来描述语言的数学系统,并以此定义了四类性质不同的语言,称为语言(文法)的Chomsky分类。(0、1、2、3型) 1.2 编译器(compiler)的发展(续) 编译器的自动构造: 1.2 编译器(compiler)的发展(续) 编译器设计最近的发展 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.3 与编译器相关的程序(续) 解释程序虽然不产生目标程序,但它可能产生中间代码。尽管编译程序和解释程序在功能上有明显的区别,但从结构上看,好的解释程序和编译程序并没有很大的差别,它们都有词法分析、语法分析、语义分析和中间代码生成等工作。 1.3 与编译器相关的程序(续) 汇编程序(assembler)
有哪些信誉好的足球投注网站
文档评论(0)