编译原理的发展史

上传人:lis****211 文档编号:180631717 上传时间:2023-01-07 格式:DOCX 页数:4 大小:13.64KB
返回 下载 相关 举报
编译原理的发展史_第1页
第1页 / 共4页
编译原理的发展史_第2页
第2页 / 共4页
编译原理的发展史_第3页
第3页 / 共4页
点击查看更多>>
资源描述
编译器与编译工具概述摘要:编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运 行的低阶机器语言的程序。编译是从源代码(通常为高阶语言)到能直接被计算机或 虚拟机执行的目标代码(通常为低阶语言或机器语言)的翻译过程。一编译器的概述1. 编译器的概念编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运 行的低阶机器语言的程序。编译器将原始程序作为输入,翻译产生使用目标语言的等 价程序。源代码一般为高阶语言如Pascal、C+、Java等,而目标语言则是汇编语言或目标机器的目标代码,有时也称作机器代码。2. 编译器的发展历史上世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译 器进行开发。与此同时,Noam Chomsky开始了他对自然语言结构的研究。Chomsky的 研究导致了根据语言文法的难易程度以及识别它们所需要的算法来对语言分类。正如现在所称的Chomsky架构(Chomsky Hierarchy ),它包括了文法的四个层次:0型文 法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。2型文 法被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。分析问题(用于上下文无关文法识别的有效算法)的研究是在 60年代和70年 代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。在70年代后期和80年代早期,大量的项目都贯注于编译器其它部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复 杂而人们又对其不甚了解。编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用 于推断或简化程序中的信息。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment , IDE )的一部分,它包括了编辑器、连接 程序、调试程序以及项目管理程序。在九十年代,作为GNU项目或其它开放源代码项目标一部分,许多免费编译器和 编译器开发工具被开发出来。大约在1999年,SGI公布了他们的一个工业化的并行化 优化编译器Pro64的源代码,后被全世界多个编译器研究小组用来做研究平台,并命 名为0pen64。0pen64的设计结构好,分析优化全面,是编译器高级研究的理想平台。3. 编译器的种类编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境 下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用 来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成 新的硬件平台时非常有用。“源码到源码编译器”是指用一种高阶语言作为输入,输 出也是高阶语言的编译器。例如:自动并行化编译器经常采用一种高阶语言作为输 入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP )或者用语言构造进行注释(如FORTRAN的DOALL指令)。二编译工具1. C语言对应的编译器VS2008C语言对应的编译器可以用VS2003、VS2005、VS2008、TC等,以最新版本的Visual Studio 2008 为例Microsof t Visual St udio 2008使开发人员能够快速创建高质量、用户体验丰富而又紧 密联系的应用程序,充分展示了 Microsoft开发智能客户端应用程序的构想。借助Visual Studio 2008,采集和分析信息将变得更为简单便捷,业务决策也会因此变得更为有效。任 何规模的组织都可以使用 Visual Studio 2008快速创建能够利用 Windows Vista和 2007 Office system的更安全、更易于管理并且更可靠的应用程序。Visual Studio 2008在三个方面为开发人员提供了关键改进:1快速的应用程序开发2. 高效的团队协作3突破性的用户体验Visual Studio 2008提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各 种平台上快速创建当前最先进的应用程序。2005年,微软发布了 Visual Studio 2005。.NET字眼从各种语言的名字中被抹去, 但是这个版本的Visual S tudio仍然还是面向.NET框架的(版本2.0)。它同时也能开发 跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的 软件,甚至包含代码测试功能。Visual Studio 9目前可以确定的是支持建立于DHTML基础上的AJax技术,这种微软在Visual InterDev时代提出的基于异步的客户端动态网页技术在当年并没有像微软预期中 的那么流行起来,反而随着GMail等应用而东山再起,渐渐成为主流网络应用之一。同时 Visual Studio 9会强化对于数据库的支持以及微软新的基于工作流(Workflow)的编程模 型。预计为了保持与Office系列的统一,Visual Studio 9的名称为Visual Studio 2008。2. C+语言对应的编译器Microsoft Visual C+ 6.0Visual C+是一个集成环境的C+编译器,功能很多。还有Borland C+ Buider C+ 编译器,比较小巧实用。C+ Buider也是C+编译器,是另一个公司的产品。Microsoft Visual C+ 6.0 功能特点:几乎所有世界级的软件,从业界领先的Web浏览器到面向任务的企业应用,都是使用 Microsoft Visual C+开发系统来开发的。要用C+来开发Windows和Web上的高性能应用 程序,Visual C+是效率最高的首选工具。Visual C+ 6.0在不牺牲灵活性、性能和控制 力度的同时,给C+带来更高水平的生产效率。除了 IntelliSense Technology (智能感应 技术)和Edit and Continue (即编即调)等显著缩短开发时间的新特性外,Visual C+ 6.0 还为Web开发和企业开发提供更良好的支持。Microsoft Visual C+ 6.0专业版的健壮的 构件开发、强大的数据库工具和完备的Internet支持将使您从中受益,创建出策略性的商 务解决方案来。有了这些显著缩短开发时间的新特性,您可以享受到一种全新水平的工作效率。编码所 费的时间减少了,编译所费的时间减少了,调试所费的时间也减少了,一句话,创建应用程 序所费的时间减少了,同时还可以享受到更多的构件重用。获得令人目眩的速度。本已是速度的标准的Visual C+如今更上一层楼,Visual C+ 6.0 在多处进行了最优的调整,这样的结果是:开发者可以创建出可能范围内的最小最快的构件 和应用。3. JAVA语言对应的编译器eclipseJCrea ter、JBuilder、eclipse、myeclipse、net bean 这几个是主流,eclipse 和 myeclipse(eclipse的扩展功能更多)是主流中的主流。JBudler Eclipse属于IDE,是集成开发环境(IDE)! IDE是集成了编译,检错,自动 查找错误,深度反检查功能的辅助开发工具。就是说,只要属于java的IDE,都会把sun 的编译器集成到它里面来。而JBudler与Eclipse等这些开发工具更多的是体现在对不同 层面java开发提供了不同的强大功能。比如:MyEclipse强势在web开发的便捷。JBudler 对GUI更强大。eclipse是一个非常著名的集成开发工具,其自身功能强大而易用。更为重要的是,软件本 身是一个开放源代码的项目,由一个国际组织进行管理,很多大公司都是这个组织的成员, 包括IBM和Borland等著名的软件开发商,事实上,eclipse本来是IBM开发的工具,是由 IBM将其贡献给开放源代码社区的。正因为如此,任何人都可以免费获得eclipse开发环境, 而不需要支付任何费用。eclipse的另一个非常重要的特点是其提供了非常灵活的扩展能力,事实上,eclipse可以 被称作一个开发平台,它提供了丰富的接口可以扩展其本身。eclipse本身是使用Java开 发的,开发人员可以简单的按照其规范开发eclipse的插件,就可以在eclipse平台上增加 更多的功能。大量的开发人员基于eclipse开发了插件,比如C+开发、UML设计、J2EE开 发等都有相应的插件。事实上,包括IBM在内,很多大的软件公司基于eclipse开发了其自 己的软件产品,这无疑得益于eclipse良好的结构。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!