programming-languages - 编程语言分类

标签 programming-languages categorization

到目前为止,我与其他人一起使用过 Java、Prolog、SQL 和 C# 语言。我知道 Java 和 C# 是命令式的,Prolog 是声明式的,而 SQL 是有点声明式的语言。 Java 和 C# 是面向对象的,您可以使用它们开发面向方面的程序。

这已经是某些语言可能适合或实现的四种不同特征:命令式、声明式、面向对象、面向方面,我还遇到过各种其他类别:函数式语言、汇编语言,可能还有更多我还没有遇到过。没听说过。

是否存在某种一致和/或逻辑分类或多维分类,其中编程语言可以以某种一致的方式分类?

最佳答案

您可以在 this Wikipedia article of the same name 中找到一整套编程范式.特别是右边的树非常有用和全面。

而且我担心,许多编程语言可能属于不止一个类别,例如,C# 是结构化的、命令式的、面向对象的、事件驱动的、函数式的。

  • 结构化,因为它包含流程控制语句。
  • 命令式,因为您编写了计算机应该执行的操作。
  • 面向对象,因为您可以使用类对问题建模。
  • 事件驱动,因为在语言语法中直接包含了多播委托(delegate)和事件,使得一些设计模式过时了。
  • 函数式,因为委托(delegate)是作为一流对象的函数,允许您以函数式方式编写程序。

另一方面,Java 仅共享该列表中的结构化、命令式面向对象,使其更像是一种“纯”OO 语言,不受太多其他范例。

注意:这些分类取自相应的维基百科页面。

这些分类中的每一个都是相互正交的,上面文章中提到的许多分类都是相互正交的。它们描述了如何处理语言、语法或执行的不同方面。

关于programming-languages - 编程语言分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1614174/

相关文章:

Windows 汇编语言编程

c++ - C/C++ 中的垃圾值

java - OpenNLP 分类器版本 1.8

php - 使用 php 对大型 mysql 结果进行分类时?

programming-languages - 腮腺炎编程检查超时

programming-languages - Lua 开发是否停滞不前,或者是否还有新版本计划?

r - 从 r 中的现有变量创建新的变量类别

r - 使用 dplyr 对两列数据框中的对象进行分类

面向业余程序员的 Python(几个问题)

python - 推特/通用分类训练语料库