编程语言是一组概念的集合。
一、抽象与表达力
1、针对(一组)特定问题强大的表达(和解释)能力;
具有准对性的问题域更好的抽象能力;
包含语言、范式的特定概念;
2、拥有自己独特的概念和构建体系
这些概念(针对某些问题)具有更好的描述、抽象、表达能力。
3、抽象(表达)的两个方向
1)将冯诺伊曼底层的概念抽象为更容易使用和表达的语言概念:io、一步、并发等
2)将通用的概念(范式)抽象为更为(领域)语言的基础概念:reactX、dsl等
二、可行性
能够解释为冯诺伊曼体系的基础语言。
解释的过程一定会产生一定的解释代码,从而牺牲cpu和内存的性能。
例子:虚函数表、动态派发。
也有可能只是牺牲了编译器或解释器的速度。
三、高低层语言是人类的理解能力和对机器的控制之间的平衡。
低层语言具有更有效的机器控制力而不是更强的机器控制力。
因为绝大多数高级语言都是图灵完备的。
但是高层语言因为需要解释系统,所以损耗了一定的效率。
编程语言与软件系统一样,处于不同层次。层次越高,对人越友好,控制机器的能力越差;层次越低,控制机器的能力越强
语言(范式)存在的基础是在某些方面具有强大的表达能力
将语言(范式)域的概念转化为冯诺伊曼域的概念;
更高级的语言具有更强大的表达能力;或者更有针对性的描述能力。