
(完整word)编程语言未来的发展趋势—最终版.doc
12页完整word)编程语言未来的发展趋势—最终版编程语言未来的发展趋势——对未来编程语言的看法编程语言未来的发展趋势 1【前言】 2【摘要】 3【编程语言未来发展方向预测】 3【计算机语言的发展趋势】 4【计算机未来的发展方向概述】 4【高级语言的发展史】 5由计算机语言的发展得到的启发 8【从专业的角度分析未来编程几个可能的方向】 10方向(1):并发 10方向(2):声明式编程 11方向(3):函数式编程 12方向(4):动态语言 13总结 14【参考文献】 15【前言】 程序设计一直是编程者工作的核心,但是编程语言却并不像“工具”、“框架”或是“开发方法”一样被程序设计者所重视,国内的计算机教育也一直存在着这样的教授误区,宽泛的认为语言之间的变通性,而恰恰忽略了语言本身的改良与发展.事实上计算机高级语言的每一次改良都意味着生产力的重大进步和发展.语言的发展和演变也比任何其他方面的改良更悠久,而且一直影响着计算机未来的发展趋势. 新语言的诞生也许不像其他的生产发现一样能够得到即时的收益,也不可否认的绝大多数的新语言,在实际应用中“夭折”,但是语言改革这一必然的大趋势,已经越来越多的引起了计算机从业者的重视。
摘要】 现在影响力较大的趋势主要有3种首先,我们会越来越多地使用声明式的编程风格主要会提到例如DSL(Domain Specific Language,领域特定语言)以及函数式编程然后在过去的五年里,对于动态语言的研究越来越多,其中对我们产生重大影响的无疑是动态语言所拥有的良好的编程能力,然后便是并发编程,多核的产生迫使我们不得不重视并发编程随着语言的发展,编程语言分类方式也要有所改变以前的面向对象语言,动态语言或是函数式语言现在因为边界变得越来越模糊,经常会互相学习各自的范式静态语言中出现了动态类型,动态语言里也出现了静态能力,而如今所有主要的编程语言都受到函数式语言的影响因此,一个越来越明显的趋势是“多范式程序设计语言”编程语言未来发展方向预测】多核时代的到来很可能会改变传统的计算机体系结构,语言、框架、工具三者发展的历史中,语言始终与之相较是比较缓慢的,但是在计算机体系结构被更改的时候,语言和编程模式也将要发生一些质变计算机语言的发展趋势】面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。
提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序面向对象提供简单的类机制以及动态的接口模型对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用,用于网络、分布环境下有安全机制保证平台无关性,与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台计算机未来的发展方向概述】 面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程计算机语言发展的特性:(1) 简单性:提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序 .(2)面向对象:提供简单的类机制以及动态的接口模型对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用 .(3)安全性 :用于网络、分布环境下有安全机制保证。
4)平台无关性:与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台 【高级语言的发展史】1954 Fortran FORTRAN(FORmula TRANslator的缩写)意为“公式翻译器”,是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用 958 LISP LISP语言(全名LISt Processor,即链表处理语言)由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言 1959 Cobol COBOL(Common Business Oriented Language)是数据处理领域最为广泛的程序设计语言,是第一个广泛使用的高级编程语言主要应用于数值计算并不复杂,但数据处理信息量却很大的商业领域1962 SimulaSimula 67被认为是最早的面向对象程序设计语言,它引入了所有后来面向对象程序设计语言所遵循的基础概念:对象、类、继承. 1964 Basic BASIC(Beginners All—purpose Symbolic Instruction Code)的意思就是“初学者的全方位符号指令代码”,是一种设计给初学者使用的程序设计语言。
BASIC是一种解释语言,在完成编写后不须经过编译及连结即可执行,但如果要单独执行仍然需要编译成可执行文件 1968 PascalPascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言Pascal的取名是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal,它由瑞士Niklaus Wirth教授于六十年代末设计并创立 1969 C C语言既具有高级语言的特点,又具有汇编语言的特点,由美国贝尔研究所的DM.Ritchie于1972年推出.1978后,C语言已先后被移植到大、中、小及微型机上. 1975 SQL SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统 1983 C++ C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格 1987 Perl Perl象C一样强大,象awk、sed等脚本描述语言一样方便。
Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN.Perl最初的设计者是拉里·沃尔(Larry Wall),发表于1987年12月18日. 1991 Python Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年Python是一种代表简单主义思想的语言阅读一个良好的Python程序就感觉像是在读英语一样它使你能够专注于解决问题而不是去搞明白语言本身 1995 Java Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称 1995 JavaScript JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言 2001 C# C#(C Sharp)是微软为.NET框架量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向的程序语言,与C++和Java同样是面向对象程序设计语言。
2002 .Net .NET 是 Microsoft XML Web服务平台XML Web服务允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言 2005 Ruby On Rails Ruby on Rails是一个可以使你开发、部署、维护web应用程序变得简单的框架,Ruby以7月的诞生石ruby(红宝石)命名 2009 Node.JS Node是一个服务器端 JavaScript 解释器,它改变了服务器应该如何工作的概念它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一台物理机的连接代码 由计算机语言的发展得到的启发由此可以看出:是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持.计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言.计算机语言的发展历史:二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽.几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。
也就是说,开发时间已经远比运行时间来得宝贵于是,新的集成、可视的开发环境越来越流行它们减少了所付出的时间、金钱(以及脑细胞)只要轻敲几个键,一整段代码就可以使用了这也得益于可以重用的程序代码库.随着c, pascal,fortran,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型———-—面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等 【从专业的角度分析未来编程几个可能的方向】方向(1):并发摩尔定理有个推论,便是说时钟速度将根据相同的周期提高,也就是说每隔大约24个月,CPU的速度便会加倍──而这点已经停止了.有些物理方面的基础因素让CPU不能运行的太快。
然而,另一意义上的摩尔定理出现了.我们还是可以看到容量的增加,因为可以在同一个表盘上放置多个CPU了.目前已经有了双核、四核,Intel的CTO在三年前说,十年后我们可以出现80核的处理器到了那个时候,你的任务管理器中就可能是这样的你可以看到,计算能力已经完全用上了这便是个问题,比如你在这台强大的机器上进行一个实验,你自然希望看到100%的使用状况,不过传统的实验都是在一个核上执行的,所以我们面临的挑战是,我们需要换一种写程序的方式来利用此类机器.我们已经不能写一个程序,然后对客户说:啊,未来的硬件会让它运行的越来越快,我们不用关心太多,除非你换种不同的写法多核革命的一个有趣之处在于,它对于并发的思维方式会有所改变传统的并发思维是在单个CPU上执行多个逻辑任务,使用旧有的分时方式、时间片模型来执行多个任务.但是,你想一下便会发现如今的并发情况正好相反,现。
