到目前为止,我与其他人一起使用过 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/