编程语言核心
0. 概述
编程语言非常多,而且各有各的适用场景和领域。虽然多且杂,但是所有的编程语言的核心内容却是基本一致的,这归根到底,还是因为编程语言首先是一个解决问题的工具,其次才是方法和思想。
1. 数据类型
-
数值类型
-
字符类型
-
布尔类型
-
复合类型
-
字符串
数据类型可以分为强类型/弱类型,以及静态类型/动态类型。目前编程语言的发展趋势是普遍是强/动态。
2. 容器和字符串
容器和字符串本是数据类型的一部分,但是与一般的数据类型不一样,所以单独咧出来。绝大多数现代语言都包含如下类型容器:
-
字典类型:键值对
-
数组
-
集合
-
元组
-
链表
-
队列
-
栈
3. 基础语法
-
语句和表达式
-
运算符和优选级
-
变量和作用域
-
注释
-
函数定义和声明
4. 流程控制
流程控制包含:
-
循环
-
分支
-
判断
现代语言都包含了这三种流程控制,对于一些古老的语言或者特定领域语言,就不是这样的了。
5. 错误处理
任何编程语言都有错误处理机制,有些非常简单甚至粗糙简陋,有些则非常完善强大,主要是异常处理机制。各个语言的错误处理都不相同,但是机制和思想基本一致。
6. 模块化
模块化是编程语言必须支持的内容,编程语言主要从编译和链接机制支持模块化。比如C语言的头文件方式,c++/c#/的命名空间,java/go的package,Python的module。
另外动态库/静态库也属于模块化的一种。
7. 多线程/并发
多线程/并发并不是编程语言必然有的特性,所以有些语言使用三方库的形式支持,比如C/C++;有些语言原生支持多线程,比如C#/JAVA,而有些由于历史原因,虽然包含了多线程机制,但是比较鸡肋,比如Python。
有些语言不仅支持多线程,并且对并发也是支持,而且很强大,比如Go。
8. 垃圾回收(GC)
现代化的编程语言基本都支持GC,但是一些比较古老的语言由于历史原因,只能手动管理资源,典型的就就是C/C++。
9. 编程范式
编程范式指的是语言用于解决问题的方法。典型的范式有:面向过程,面向对象,函数式,元编程,范型等。
各种不同的语言由于思想不同,编程范式也不相同。虽然很多语言支持多种范式,但是核心的却只有一种。
版权声明:本文为chorulex原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。