《程序分析方法》——1.2 程序设计语言的发展趋势

1.2 程序设计语言的发展趋势

  Turbo Pascal编译器的主要编写者以及.NET框架、Delphi和C#之父——Anders Hejlsberg认为,相对于近几十年来计算机硬件的飞速发展,程序语言的改进不是很明显,主要的原因在于人们更关注“工具”、“框架”或“开发方法”的变革和创新,而忽略了语言的改进。程序设计离不开程序设计语言,程序设计语言与“工具”、“框架”或“开发方法”等一样,都对生产力有着重要影响。
  Anders认为,在过去几十年的编程历史中,程序语言的抽象级别不断提高,人们都在努力让程序语言更有表现力,这意味着人们可以用更少的代码完成更多的工作。Anders还认为,这样的趋势还会继续保持下去,人们将看到抽象级别越来越高的语言。另外,程序语言往往倾向于构建在现有的工具上,而不会从头写起,因为每次从头开始的代价实在太高。
  在Anders心目中,影响力较大的发展趋势主要有三种,它们分别是“声明式编程”、“动态语言”以及多核环境下的“并行编程”。此外,随着语言的发展,原本常用的“面向对象”语言、“函数式语言”或“动态语言”等边界也会变得越来越模糊,因此,“多范式”程序设计语言也是一个越发明显的发展趋势。
  目前常见的编程语言都是“命令式”(Imperative)的,如C#、Java或C++等。这些语言的代码更多关注的是计算任务是如何完成的(How),只要按部就班地一步步地执行写好的代码,就能实现最初的目标。所谓“声明式”(Declarative)语言的代码更多关注的是计算任务是什么(What),函数式语言就属于“声明式”语言,由于“声明式”更能凸显执行目标,也更便于进行任务分解,提高代码的并行化程度,因此,让代码包含更多的“What”,而不是“How”,是编程语言的发展趋势之一。
  传统的程序设计语言都是“静态语言”,即程序的结构是固定的,程序在运行前先要经过编译,以找出程序中存在的编译错误,修改错误后再重新编译,直至没有编译错误才可以运行程序。“动态语言”是指程序在运行时可以改变其结构:引进新的函数、删除已有函数等。动态语言不区分“编译时间”(compile-time)和“运行时间”(runtime-time),动态语言的执行相对于静态语言会慢一些,也没有类型安全的概念。常见的动态语言有JavaScript、Python、Ruby、LISP等。Anders认为,静态语言和动态语言各有优势,未来的发展趋势将是二者的有机融合,而不是谁取代谁。
  多核处理器以其高性能、低功耗优势正逐步取代传统的单核处理器而成为市场的主流。随着应用需求的扩大和技术的不断进步,多核必将展示出其强大的性能优势。多核处理器的出现也对程序设计语言提出新的挑战,首先是思维方式的改变,传统的并发思维,是在单CPU上执行多个逻辑任务,使用旧有的分时方式或时间片模型来执行多个任务。与此不同的是,多核处理器的每个CPU上集成了多个计算核心,多核处理器上的并发是将一个逻辑任务放在该CPU的多个计算核心上执行,这必将改变人们编写程序的方式,同时也意味着程序语言或者API要有办法来分解任务,能够把它分成多个小任务后独立执行,而传统编程语言不需要关注这些。

时间: 2024-09-11 21:30:07

《程序分析方法》——1.2 程序设计语言的发展趋势的相关文章

《程序分析方法》——导读

前言 程序分析是以某种语言编写的程序为对象,对其内部的运作流程进行分析的过程.通过程序分析,可以帮助人们更好地理解程序内部各模块之间的调用关系,把握程序的运行流程,也可以帮助人们找出系统运行的瓶颈,指导系统优化,还可以用于系统测试和程序调试,找出系统Bug,以及进行错误定位.因此,程序分析是一种非常实用的技术,深入理解并熟练掌握程序分析相关的方法和技术,对于增强对程序设计语言的理解,掌握先进的程序设计方法,更好地分析和理解程序都有很大帮助.程序分析是计算机专业人员必备的一种技术,同时也应该成为计

《程序分析方法》——1.1 程序设计语言发展的四个阶段

1.1 程序设计语言发展的四个阶段 到目前为止,程序设计语言的发展经过了机器语言.汇编语言.高级语言.第四代语言四个阶段,每一个阶段都使程序设计的效率大大提高.我们常常把机器语言称为第 一代程序设计语言,把汇编语言称为第二代程序设计语言,把高级语言称为第三代程序设计语言,把最新的程序设计语言称为第四代语言.1.1.1 机器语言 机器语言是计算机能直接识别和执行的一组机器指令的集合.它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能.一条机器指令就是机器语言的一个语句,它是一组有意义的二进

《程序分析方法》——第1章 程序设计语言

第1章 程序设计语言 自然语言是人与人之间沟通和交流的工具,而程序设计语言(Programming Language)是程序员与计算机或程序员与程序员之间沟通和交流的工具.语言的基本组成是一组符号和一组规则,依据规则由符号构成的符号串的总体就是语言.在程序设计语言中,这些记号串就是计算机程序(Program).一般来说,计算机程序就是用某种程序设计语言编写的一个指令序列,用于说明使用计算机将完成的任务的工作流程或工作步骤.计算机的控制器从程序的第一条指令开始,顺序地逐条取出指令,然后按指令的规定

《程序分析方法》——2.2 元程序设计系统

2.2 元程序设计系统 2.2.1 元程序系统的组成 元程序的处理对象是程序而不是通常的数据,因此其处理过程要相对复杂.通常一个元程序设计系统由下面三个部分构成: 预处理--把目标程序变成一种中间表示(目标语言的内部表示形式). 元级操作--对内部表示直接进行处理的基本操作. 后处理--把中间表示转化为目标代码. 其中,中间表示决定了该系统中目标程序到元级用户的接口特性,对整个系统的可用性起到重要作用:而元级操作是系统的另一重要部分,用户主要使用这些元级操作对目标程序的内部表示进行处理(注意,此

《程序分析方法》——第2章 元程序设计 2.1 元程序介绍

第2章 元程序设计 2.1 元程序介绍 1.元程序概念 在现代程序设计中,程序已经取代数据成为操作对象,变得越来越重要.元级程序设计系统是一种对程序进行操作的有效工具,可用于各种元程序设计.其中,对程序进行处理的基本操作称为元级操作:实现元级操作的语言叫做元语言:所处理的语言叫做目标语言. 元程序(Meta Program)是可以操作目标程序(Object Program)的程序,它可以构造目标程序,也可以将目标程序段组合成更大的目标程序,还可以观察目标程序的结构和其他特性.目标程序是以形式语言

《程序分析方法》——1.3 小结

1.3 小结 本章介绍了程序设计语言的历史.程序设计语言的实现方式和程序设计语言的未来发展趋势.程序设计语言作为程序员与计算机交流的唯一媒介,其演变历程.实现方式和未来发展趋势,对于程序设计.程序分析.程序验证和程序的正确性证明等问题的研究有着深远的影响.程序设计语言发展至今,经历了机器语言.汇编语言.高级语言和第四代语言的演变,语言的定义和实现方法逐步完善.尤其是高级程序设计语言,根据编程机理的不同,又细化出命令式语言.函数式语言.面向对象语言.逻辑式语言四种不同范型.不同的语言范型,催生了不

《程序分析方法》——2.3 小结

2.3 小结 本章介绍了元程序的基本概念和元级系统的组成.生成方式及应用.元程序是处理程序的程序,人们熟知的元程序包括编译器.解释器.类型检查器.定理证明器等.元程序由预处理.元级操作和后处理三部分组成.预处理用于将源程序转换成四元式.树等中间表示:类型识别.成分选择等元级操作用于对内部表示进行处理:后处理用于将中间表示转化为目标代码.元级系统可以使程序员对于目标程序的操作变得更加简单和便捷,元级系统的优势在于它可以提供多个目的的解决方案来满足在许多系统中可以重用的需求.但如何构造高效的元级系统

java中有关get方法的使用(具体程序分析)

问题描述 java中有关get方法的使用(具体程序分析) 最近在学习java,用的徐彩霞的java基础教程. 有个例子不太明白. /* /注释部分的get部分有和没有结果一样,想知道为什么要用get? 又必须要用的情况吗? 刚学,懂得比较少,谢谢了~ class Person { private String name; private int age; private void talk() { System.out.print("I'm "+name+" and &quo

C++抽奖程序实现方法_C 语言

本文实例讲述了C++抽奖程序实现方法.分享给大家供大家参考.具体实现方法如下: 一.int rand()可以生成从[0, 65536)之间均匀分布的随机数. 现要求实现:有30万员工,使用rand()写一个抽奖程序,抽出人100获奖. #include <iostream> #include <set> using namespace std; typedef set<int> ISET; ISET GetPridePersonId(const int num, con