博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《程序分析方法》——1.2 程序设计语言的发展趋势
阅读量:6448 次
发布时间:2019-06-23

本文共 1341 字,大约阅读时间需要 4 分钟。

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要有办法来分解任务,能够把它分成多个小任务后独立执行,而传统编程语言不需要关注这些。

转载地址:http://devwo.baihongyu.com/

你可能感兴趣的文章
vue.js 移动端音乐app(一) 基础组件 scroll
查看>>
Redis Cluster:Too many Cluster redirections异常
查看>>
消息队列ActiveMQ的使用详解
查看>>
Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)
查看>>
传说中的“年龄50后,年薪40万”?淘宝体验师的第一课
查看>>
2017 世界增强现实亚洲博览会将盛大开幕!
查看>>
Forrester区块链分析报告:区块链热潮背后的五大技术隐忧
查看>>
成长型企业中的PDM实施策略
查看>>
云效助力企业走出敏捷之路
查看>>
【开发者笔记】二分法查找
查看>>
Java容器小结和使用示例
查看>>
初来乍到,先测试一下
查看>>
几个移动App测试工具
查看>>
蒙特卡罗树搜索之初学者指南
查看>>
ansible playbook 详解
查看>>
Linux Debug tools
查看>>
DNAT 与 SNAT
查看>>
centos7配置iptables
查看>>
Spring4-EL表达式的运算符使用
查看>>
无法访问远程计算机上的事件查看器?
查看>>