到目前为止,我一直在使用Java、Prolog、SQL和C#语言。我知道Java和C#是命令式的,Prolog声明性语言和SQL某种程度上的声明性语言。Java和C#是面向对象的,您可以使用它们开发面向方面的程序.
这已经是某些语言可能适合或实现的四个不同特性:命令式、声明式、面向对象、面向方面,我还遇到了其他各种类别:函数式语言、汇编语言,可能还有很多我从未听说过的特性。
是否有某种一致和/或逻辑分类或多维分类,其中的编程语言可以在某种程度上一致的分类?
发布于 2009-10-23 15:24:18
您可以在维基百科的这篇同名文章中找到大量的编程范例。尤其是右边的那棵树是非常有用和全面的。
我担心,许多编程语言可能属于不止一个类别,例如,C#是结构化的、命令式的、面向对象的、事件驱动的、功能的。
另一方面,Java只共享该列表的结构化、命令式和面向对象的特性,这使得它更像是一种“纯”OO语言,不受太多其他范式的影响。
注意:这些分类是从各个维基百科页面中提取的。
这些分类中的每一种都是相互正交的,上面提到的许多分类都是正交的。它们描述了如何处理语言、语法或执行的不同方面。
发布于 2009-10-23 23:49:55
在这篇开创性的CS论文(早于OO,顺便说一句)是由Peter Landin撰写的的末尾有一个有趣的讨论,我们可以看到最基本的区别是祈使语言和声明语言。在基本级别上,类型系统类别提供了高级别的语言分组。语法的可扩展性是另一个相当高的层次和基本的分类。
我认为多维矩阵比层次结构更适合你的目标,我认为上面概述的三个维度是绝对基本的。
发布于 2009-10-24 01:37:29
虽然有点切分,但是O‘’Reilly在埃里克·莱韦内斯的原作的基础上做了一张很棒的海报,在他们的历史中追溯了主要的编程语言。
https://stackoverflow.com/questions/1614174
复制相似问题