atitit.高级编程语言的特性 and 未来趋势与进化.doc

1 编程语言的发展历程 1

1.1 编程语言的进化,起始发现背后的思想 :不论什么两个系统之间的复杂性,都能够通过加入一个抽象层要屏蔽 1

1.1.1 C语言, 硬件抽象层 2

1.1.2 高级语言:java,.net  跨平台(os)抽象层vm
2

1.2 DSL领域编程语言(跨越编程语言) 2

1.2.1 实现方式:: 语义 和 语法 分开 2

1.2.2 结构Dsl,dsl解释器 2

1.2.3 统一的开发语言 2

1.2.4 每一个领域特性部分,使用类库解决 2

2 语言特性发展 3

2.1 Oo+ 3

2.2 Function 3

2.3 动态(non编译)还是编译?? 3

2.4 多核 3

2.5 强类型还是弱类型???类型判断和模式匹配 4

2.6 面向自然语言还是简单的?? 4

2.7 抽象能力 4

2.8 删除语法噪音 4

2.8.1 语法噪音 4

2.9 强大ide,vm 5

2.10 Gc 垃圾收集 5

2.11 Vm 平台化 5

2.12 数据与结构分离还是紧密集合??? 5

2.13 异步api 5

2.14 安全api 5

2.15 库与语法融合 6

2.16 . fluent API: 流畅api 6

3 參考 6

1 编程语言的发展历程

1.1 编程语言的进化。起始发现背后的思想 :不论什么两个系统之间的复杂性,都能够通过加入一个抽象层要屏蔽

1.1.1 C语言, 硬件抽象层

对于汇编语言的问题。主要要解决跨硬件平台,加入一个抽象层,这个就是硬件抽象层

1.1.2 高级语言:java,.net  跨平台(os)抽象层vm

为了解决C语言的跨平台的问题

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

1.2 DSL领域编程语言(跨越编程语言)

1.2.1 实现方式:: 语义 和 语法 分开

而个的语言编程语言一般都是语法和语义绑定在一起的

1.2.2 结构Dsl,dsl解释器

1.2.3 统一的开发语言

如今越来越有这个趋势了,各个语言都在加入其它语言的特性。增强自己的特性,以后各个语言都变的越来越类似,功能也越来越雷同

1.2.4 每一个领域特性部分,使用类库解决

或者二手的dsl?

?

2 语言特性发展

2.1 Oo+

2.2 Function

2.3 动态(non编译)还是编译??

综合考虑,工业级别的源代码保护的考虑哈,还是要编译,,yaneng跟个python雅十,共同的情形哈不编译器,给客户的时候儿编译..

python雅十,经常使用使用script式,,也能编译了...

动态性意味着更加灵活,意味着开发人员有很多其它的"魔术"能够玩。而开发人员会天生对动态语言有亲昵地感觉,这是人的本性。

可是凡动态语言,JavaScript、Python、Ruby这些,实际上已经意味着与地层开发无缘了。

同一时候灵活意味着少约束,少约束意味着大规模程序非常难被编写出来。到眼下为止。非常少听到过超过10万行级别的JS语言项目,这种现象多少与JS的动态性有关。

反过来看,动态性较低的C语言如今成了驱动和OS内核开发的不二之选。由于好像驱动里面根本用不着那些看上去NB的抽象——即使你用了C++。也是像C一样用而已

2.4 多核

2.5 强类型还是弱类型???类型判断和模式匹配

以及ide支持不行。。

所以。综合考虑,工业级别的  任然是强类型的天下。。

也能够强大的类型判断和模式匹配

或者,语言支持弱的型,也能强壮的型…必要的的时候儿,能强类型…

Scala是静态类型的。很多人会把vals="ABC"这种当作动态类型特性,而vals:String="ABC"才觉得是静态类型特性。实际上,这无关类型争论,而是类型系统实现的范畴。是的,在Scala里,你能够放心大胆地使用vals="ABC"。而Scala里强大的类型判断和模式匹配。绝对会让你爱不释手。

2.6 面向自然语言还是简单的??

Cobol,ada的强壮的理解性…普通的的人们能理解的..

大部分情形哈,还是简单的特性ok…而个的java代替了cobol,ada..

2.7 抽象能力

抽象能力应该是现阶段语言进化的第一优先级,抽象手段无非函数式、过程式和面向对象三种,看计算机语言的流行历史, 不难看出 函数式=>过程式=>面向对象=>函数式回归 这种规律。Lisp一直在学术界评价颇高,可是其商业应用一直低迷。其抽象能力比較弱一直是个重要的原因。

2.8 删除语法噪音

2.8.1 语法噪音

语言除了功能和设计,“长相”也是非常重要的。这里要提到一个语法噪音的概念,比方JS里面的function,相比lambda表达式,这个噪音就多了

arr.some(function(x){ return x<2});

而C#里面能够这么写:

arr.some(x=>x<2);

这里面。functionkeyword。returnkeyword,各种符号,事实上实际意义都不大,由于JS语法设计,而必需要加上,这就是一种噪音。

有趣的是,向python这种语言对于“去噪”的追求达到了极致,甚至不惜用空白做标志干掉花括号,这个做法导致了其毁誉參半,喜欢的人特别喜欢,不喜欢的人特别讨厌。

2.9 强大ide,vm

2.10 Gc 垃圾收集

眼下很多语言都能够自己主动垃圾收集。。

可是仅仅是内存。。

数据库。网络,以及磁盘io连接任然有泄露的可能。

2.11 Vm 平台化

2.12 数据与结构分离还是紧密集合???

尽可能的分离为好。

程序和数据也不应该被分开。

由于现代数据操作和模块化的基础是并行程序(parallelism),而有效实现并行的基础是程序的first-class表达,也就是把程序作为一种基本数据类型。

2.13 异步api

2.14 安全api

闭包、多个返回值

2.15 库与语法融合

库与语法融合在了一起。

我们能够看到在Java中对字符串String对象的操作能够简单地使用操作符+、+=进行操作。然而String本身并非关键 字,可是可被编译器识别。由于你换成其他对象可能就无法用这些操作符来进行操作了。

而对String类的实现本身可用一个用Java编写的相对独立的库进 行实现。

事实上将语法体系与语言自带标准库绑定还是有不少优点的。

首先,这easy被扩展,开发人员能够依据自己的需求来自己定义某些语法的行为。

其次,对编译器而言能够减 轻压力。某些执行时行为能够交给标准库进行实现。

这样,编程语言能够比較方便地被打造成比較完备的语法体系。这样的耦合也增强了编程语言的执行时能力。包含 灵活性、可扩展性。

2.16 . fluent API: 流畅api

偏向傻瓜式的编程,直接用IDE的代码辅助就能把代码敲出来。

java那种展现精美的架构的同一时候,却要求程序猿自己一块块砖搭起来的风格逐渐没落...

3 參考

atitit.编程语言的未来趋势与进化结果

Atitit.现代高级语言的特性以及趋势attilax总结

最新文章

  1. 使用ANTS Performance Profiler&amp;ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
  2. 两种遍历list
  3. iOS音乐播放器相关
  4. sql2000添加表注释,列注释 及修改 删除 注释
  5. VPN fq工具的选择
  6. apache-virtual host
  7. 中文字符串的编码转换(c实现)
  8. Mockito测试
  9. net::ERR_CONNCTION_ABORTED与http post request header is too large 错误
  10. hdu 1068 Girls and Boys 最大独立点集 二分匹配
  11. js 一些基础的理解
  12. Spring3+Hibernate4连接Oracle11g数据库参数配置
  13. 带你精读你不知道的Javasript(上)(一)
  14. 2017-2018-2 20165237 实验四《Android开发基础》实验报告
  15. hadoop-1.2.1集群搭建
  16. [oracle] Oracle存储过程里操作BLOB的字节数据的办法,例如写入32位整数
  17. Ftrace使用指南及跟踪系统调用
  18. sublime text plugins
  19. 环境变量LD_LIBRARY_PATH的传递
  20. 基因/转录本/任意特征 表达定量工具之featureCounts使用方法 | 参数详解

热门文章

  1. android 按字母搜索
  2. RFS的web自动化验收测试——第14讲 万能的evaluate
  3. ASP.NET - 编写让别人能读懂的代码
  4. android应用框架搭建------BaseActivity
  5. 基于visual Studio2013解决面试题之0501上台阶
  6. 基于visual Studio2013解决C语言竞赛题之1075大数阶乘
  7. HDU2795 Billboard 【线段树】+【单点更新】
  8. Python中的列表解析和生成表达式
  9. 【ASP.NET Web API教程】2 创建各种Web API
  10. Jsp中使用数据库连接池.