1. mainstream programming languages
2. Category programming language
2.1 compiled or interpreted
2.2 as described in the objective system can be divided into two
2.3 can be divided in accordance with the programming paradigm
3. Language Model Paradigm
4. computer language history
The programming language rank
6. programming language affect the relationship
7. For more information:
1. mainstream programming language
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 |
Column Description:
- 2019: As of July 2019 rankings
- Year logged in the first place: Top
- Languages Influenced: influence how many programming languages
- Influenced by: the impact of the number of programming languages
2. Programming Language Category
- Machine language (binary code)
- Assembly language (machine-oriented programming language)
- High-level language (...)
2.1 compiled or interpreted
- Explanatory Language: Java, JavaScript, Perl, Python, Ruby, MATLAB, etc.
- Compiled languages: C / C ++, Pascal / Object Pascal (Delphi)
- Scripting language (an interpreted language): Python, JavaScript, ASP, PHP, Perl, etc.
2.2 as described objective system can be divided into two categories
- Process-oriented language (C);
- Object-oriented languages (C ++, Objective-C)
2.3 can be divided according to the programming paradigm
- Command language; (Fortran, ALGOL, COBOL, C, Ada, Pascal)
- Functional languages; (Lisp, Haskell, ML, Scheme, F #)
- Logic languages; (Prolog)
- Pure object-oriented language (Smalltalk)
3. Language Paradigm Paradigm
sn | Language Paradigm Paradigm | such as: | description | count |
1 | Object-Oriented Programming Object-oriented |
Lisp, Java, Python, C++, Ruby, Perl, Smalltalk | Data structures and data fields and methods of interaction consisting of (objects) to design the program | 188 |
2 | Functional programming function | Lisp,Python, C++, Ruby, JavaScript, C# | Using the evaluation of mathematical functions and avoids state and variable data | 130 |
3 | Imperative programming Imperative | C, Java, Python, JavaScript, Pascal, Ruby, Perl | Change the program state explicit statement | 118 |
4 | Logic Programming Logic | Prolog | Using explicit mathematical logic programming | 20 |
5 | Declarative declarative programming | Haskell | Calculations are described to be executed without specifying the detailed status change cf imperative programming (programming and logic functions are primarily declarative programming subset) | 15 |
6 | General Generic Programming | Java, C++, Perl, C# | Prepared by using an algorithm to be specified according to the type of follow-up, and then the particular type as a parameter is instantiated as needed | 10 |
7 | Reflective programming Reflective | Ruby, JavaScript | Meta-programming method, wherein the program itself modified or extended | 5 |
8 | Dataflow programming Dataflow | SISAL | When forced to re-calculated change data value (e.g. spreadsheet) | 3 |
9 | Programming Pipeline Pipeline | A simple syntax changes, the syntax for adding to the nested function calls into language originally designed for use none | 2 | |
10 | Distributed distributed programming | Pro-autonomy multiple computers to communicate over a computer network | 1 | |
11 | Multi-paradigm programming language | Python, C++, Perl, Ruby, C# | Multi-paradigm programming language | 94 |
12 | Programming | 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
编程语言的分类列表