Program-Language
1. 主流编程语言
2. 编程语言分类
2.1 编译or解释
2.2 按照客观系统的描述可分为两类
2.3 按照编程范型可分为
3. 语言范式 Paradigm
4. 计算机语言历史
5. 编程语言排名
6. 编程语言影响关系
7. 更多信息:
1. 主流编程语言
| Language | 2019 | Top | Languages Influenced | Influenced by |
| Java | 1 | 2015 | 39 | 17 |
| C | 2 | 2017 | 54 | 10 |
| Python | 3 | 2018 | 30 | 9 |
| C++ | 4 | 2003 | 36 | 6 |
| Lisp | 32 | 60 | 1 | |
| C# | 6 | 17 | 8 | |
| JavaScript | 7 | 2014 | 12 | 7 |
| PHP | 8 | 2004 | 2 | 8 |
| SQL | 9 | 2013 | 7 | 1 |
| Objective-C | 10 | 2012 | 11 | 2 |
| Ruby | 12 | 2006 | 17 | 10 |
| Perl | 17 | 19 | 10 | |
| go | 18 | 2016 | 7 |
列描述:
- 2019: 截止2019年7月排名
- Top: 登录过首位的年份
- Languages Influenced: 影响多少个编程语言
- Influenced by: 被多少个编程语言影响
2. 编程语言分类
- 机器语言 (二进制代码)
- 汇编语言 (面向机器的程序设计语言)
- 高级语言 (...)
2.1 编译or解释
- 解释性语言:Java、JavaScript、Perl、Python、Ruby、MATLAB 等。
- 编译性语言: C/C++、Pascal/Object Pascal(Delphi)
- 脚本语言(一种解释性语言):Python、JavaScript,ASP,PHP,Perl等
2.2 按照客观系统的描述可分为两类
- 面向过程语言(C);
- 面向对象语言(C++, Objective-C)
2.3 按照编程范型可分为
- 命令式语言; (Fortran、ALGOL、COBOL、C、Ada、Pascal)
- 函数式语言; (Lisp、Haskell、ML、Scheme 、F#)
- 逻辑式语言; (Prolog)
- 纯面向对象语言 (Smalltalk)
3. 语言范式 Paradigm
| sn | 语言范式 Paradigm | 比如: | 描述 | count |
| 1 | 面向对象的编程 Object-oriented |
Lisp, Java, Python, C++, Ruby, Perl, Smalltalk | 使用由数据字段和方法组成的数据结构及其交互(对象)来设计程序 | 188 |
| 2 | 功能编程 Functional | Lisp,Python, C++, Ruby, JavaScript, C# | 使用数学函数的评估并避免状态和可变数据 | 130 |
| 3 | 命令式编程 Imperative | C, Java, Python, JavaScript, Pascal, Ruby, Perl | 改变程序状态的显式语句 | 118 |
| 4 | 逻辑编程 Logic | Prolog | 使用显式数学逻辑进行编程 | 20 |
| 5 | 声明性编程 Declarative | Haskell | 描述应该执行的计算,而不指定详细的状态变化c.f.命令式编程(功能和逻辑编程是声明性编程的主要子组) | 15 |
| 6 | 通用编程 Generic | Java, C++, Perl, C# | 使用根据待指定的后续类型编写的算法,然后根据需要对作为参数提供的特定类型进行实例化 | 10 |
| 7 | 反思性编程 Reflective | Ruby, JavaScript | 元编程方法,其中程序修改或扩展自身 | 5 |
| 8 | 数据流编程 Dataflow | SISAL | 数据值发生变化时强制重新计算公式(例如电子表格) | 3 |
| 9 | 管道编程 Pipeline | 一个简单的语法更改,用于添加语法以将函数调用嵌套到最初使用none设计的语言 | 2 | |
| 10 | 分布式编程 Distributed | 支持通过计算机网络进行通信的多台自治计算机 | 1 | |
| 11 | 多范式编程语言 | Python, C++, Perl, Ruby, C# | Multi-paradigm programming language | 94 |
| 12 | 程序编程 | Lisp, C, Python, C++, Perl | Procedural programming | 89 |
| 13 | 结构化编程 | C, Java, Pascal, Ruby | Structured programming | 65 |
| 14 | 并发计算 | C# | Concurrent computing | 26 |
| 15 | 基于原型的编程 | JavaScript | Prototype-based programming | 24 |
| 16 | 面向堆栈的编程语言 | Forth | Stack-oriented programming language | 17 |
| 17 | 并行计算 | ALGOL 68 | Parallel computing | 16 |
| 18 | 数组编程 | APL | Array programming | 13 |
| 19 | 知识表示语言 | KPL | Knowledge Representation Language | 9 |
| 20 | 连接编程语言 | Forth | Concatenative programming language | 9 |
| 21 | 口译语言 | Lisp, Python, Ruby | Interpreted language | 8 |
| 22 | 动态编程语言 | Perl, Ruby | Dynamic programming language | 7 |
| 23 | 数据库编程 | SQL | Database programming | 7 |
| 24 | 教育编程语言 | Logo | Educational programming language | 6 |
| 25 | 数学 | Lisp, Haskell, APL | Mathematics | 4 |
| 26 | 懒惰的评价 | Haskell | Lazy evaluation | 4 |
| 27 | 编译语言 | Haskell | Compiled language | 4 |
| 28 | 强打字 | Haskell, Java | Strong typing | 3 |
| 29 | 可视化编程语言 | Visual programming language | 3 | |
| 30 | 按合同设计 | Eiffel | Design by contract | 3 |
| 31 | 模块化编程 | Modula, Mesa | Modular programming | 3 |
| 32 | 类型推断 | Haskell, ML | Type inference | 3 |
| 33 | 功能级编程 | FP | Function-level programming | 3 |
| 34 | 标记语言 | Curl | Markup language | 2 |
| 35 | 依赖类型 | Dependent type | 2 | |
| 36 | 演员模特 | Actor model | 2 | |
| 37 | 框架语言 | Frame language | 2 | |
| 38 | 自修改代码 | Self-modifying code | 2 | |
| 39 | 事件驱动的编程 | Event-driven programming | 2 | |
| 40 | 组合逻辑 | Combinatory logic | 2 | |
| 41 | 细胞为主 | Cell-based | 2 | |
| 42 | 虚拟机 | Virtual machine | 1 | |
| 43 | 一次编写, 随处运行 | Write once, run anywhere | 1 | |
| 44 | 多代理系统 | Multi-agent system | 1 | |
| 45 | 基于表达式 | Expression-based | 1 | |
| 46 | 基于知识的系统 | Knowledge-based systems | 1 | |
| 47 | 面向组件的编程 | Component oriented programming | 1 | |
| 48 | 封装 | Encapsulation | 1 | |
| 49 | 阿贾克斯 | Ajax | 1 | |
| 50 | 操作者 | Operator | 1 | |
| 51 | 示例中心编程 | Example Centric Programming | 1 | |
| 52 | 二维 | Two dimensional | 1 |
注: [count]列内的数字,表示该范式包含多少种编程语言,数据来源: https://exploring-data.com/vis/programming-languages-influence-network/
4. 计算机语言历史
lang.pdf (1954-2018)
https://www.levenez.com/lang/lang.pdf
5. 编程语言排名
https://www.tiobe.com/tiobe-index/
6. 编程语言影响关系
https://exploring-data.com/vis/programming-languages-influence-network/
编程语言影响关系图↑及相关说明↓
https://exploring-data.com/info/programming-languages-influence-network/
7. 更多信息:
https://en.wikipedia.org/wiki/Programming_paradigm
编程范式是一种根据编程语言的特性对编程语言进行分类的方法。语言可以分为多种范例。
https://upload.wikimedia.org/wikipedia/commons/f/f7/Programming_paradigms.svg
根据Peter Van Roy的各种编程范例概述(svg图)
多范式编程语言的比较
https://en.wikipedia.org/wiki/Comparison_of_multi-paradigm_programming_languages
https://en.wikipedia.org/wiki/Comparison_of_programming_languages
https://en.wikipedia.org/wiki/Categorical_list_of_programming_languages
编程语言的分类列表
Program-Language的更多相关文章
- History of program (language).
1 编程语言的发展历程及未来趋势 1.1 编程语言的发展 · 1946 Plankalkul Konrad Zuse,一位德国工程师,他躲藏在巴伐利亚附近的阿尔卑斯山上时,独立开发了Plank ...
- Function program language
历史 Lambda演算为描述函数及其评估提供了理论框架.它是一种数学抽象而不是编程语言 - 但它构成了几乎所有当前函数式编程语言的基础.等效的理论公式,组合逻辑,通常被认为比lambda演算更抽象,并 ...
- 函数式编程语言(Fuction Program Language)
一.什么是函数式编程语言 函数式编程语言(functional progarm language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型. ...
- functional program language(what,include,why popular)
函数式语言(functional language)一类程序设计语言.是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组织数据结构的能力,可以把某 ...
- functional program language
1.什么是函数式编程语言 函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组 ...
- C program Language 'EOF' and 'getchar()'
#include <stdio.h> void main() { int c; c=getchar(); while(c!=EOF) { putchar(c); c=getchar(); ...
- 函数式编程(Function Program Language)
WHAT: 简单说,"函数式编程"是一种"编程范式",也就是如何编写程序的方法论. 它属于"结构化编程"的一种,主要思想是把运算过程尽量写成 ...
- 函数式编程语言(Functional Program Language)
(一) 什么是函数编程语言 简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论. 是一种编程典范, ...
- 《C专家编程》第一章——C:穿越时空的迷雾
这一章讲的是C语言的发展史,包括它是多么不经意的诞生,而后又经历了早期C.K&C.ANSI C的各种阶段,直到它现在形成的这个样子.C语言从来不是一门完美的语言,所以它一直在发展,直到今日,它 ...
- Nico Nico Ni~(完全背包)
Time Limit:2000MS Memory Limit:65535K Type: Program Language: Not Limited Description Lys plays L ...
随机推荐
- SqlService 并发测试
使用Sql QueryStress 可输入需要的线程数量,执行次数,对SQL 语句或存储过程进行测试,可查看执行时间及资源耗用.
- 重新理解CEO的学习能力----HHR计划----以太入门课--第一课
一共5个小节. 第一节:开始学习 1,投资人最看重的一点:CEO的学习能力. (因为CEO需要:找优秀的合伙人,需要市场调研,机会判断,组建团队,验证方向,去融资,冷启动,做增长,解决法务,财务,税务 ...
- MySQL更改默认的root账户密码
编辑mysql的配置文件:my.ini(在MySql安装目录下). 打开配置文件,在文件最后一行添加:skip-grant-tables,然后保存退出 意思为就是在启mysql时不启动grant-ta ...
- 搭建python虚拟环境virtualenv
virtualenv 是一个创建隔离Python环境的工具,创建虚拟环境运行,达到节省本地运行空间的目的. 安装vitualenv # pip install virtualenv 创建一个虚拟环境( ...
- 单表千亿电信大数据场景,使用Spark+CarbonData替换Impala案例
[背景介绍] 国内某移动局点使用Impala组件处理电信业务详单,每天处理约100TB左右详单,详单表记录每天大于百亿级别,在使用impala过程中存在以下问题: 详单采用Parquet格式存储,数据 ...
- SSM(Spring-SpringMvc-Mybatis)练习
1.总结 https://pan.baidu.com/s/1kXlCf4r 密码:hv6v 2.代码 https://pan.baidu.com/s/1pNgKph5 密码:6rcm 3.资料 h ...
- 普通用户切换不到root用户--权限更改
https://blog.csdn.net/lianjoke0/article/details/82598149 [root@java133 ~]# ll /etc/passwd -rw-r--r-- ...
- ubuntu18.04调整终端字体大小
一.在终端内右键->Preferences. 二.选中Custom font,然后点击旁边的Monospace Regular 20. 三.在该界面可以选择字体类型,右下角可以调整字体大小.
- TP-Link TL-WR841N v14 CVE-2019-17147 缓冲区溢出漏洞分析笔记v2018.12.31
0x00 背景 Httpd服务中的缓冲区溢出漏洞 复现参考文章https://www.4hou.com/posts/gQG9 Binwalk -Me 解压缩 File ./bin/busybox文件类 ...
- 第3节 storm高级应用:4、5、ack机制,以及其验证超时
4. 消息不丢失机制 4.1.ack是什么 ack 机制是storm整个技术体系中非常闪亮的一个创新点. 通过Ack机制,spout发送出去的每一条消息,都可以确定是被成功处理或失败处理, 从而可以 ...