基本上,我想学习很多编程语言,成为一个伟大的程序员。我只知道少数深入,我希望有人能详细说明有多少类或类型的编程语言。比如,如果你必须分组学习,你就会把它们拼凑在一起。
来自Java背景,我熟悉静态类型,但我知道,除了动态类型之外,在可用的语言中也必须有这样的多样性,如果可能的话,我希望看到一个分类分类。
发布于 2010-11-09 20:43:29
这取决于您要如何对语言进行分类。从根本上说,语言可以分为两种类型:指令计算机如何执行任务的命令式语言和指示计算机如何执行任务的声明式语言。声明性语言可以进一步细分为功能语言,其中程序是通过组合函数构造的,逻辑编程语言是通过一组逻辑连接来构造的。命令式语言读起来更像是解决问题的步骤列表,有点像菜谱。命令式语言包括C、C++和Java;函数式语言包括Haskell;逻辑编程语言包括Prolog。
命令式语言有时被分为两个子组:过程语言(如C )和面向对象语言()。然而,面向对象的语言与分组有些正交,因为有面向对象的函数语言(OCaml和Scala就是例子)。
您还可以通过键入:静态和动态来对语言进行分组。静态类型语言是指在运行程序之前(通常在编译阶段)检查类型(通常是强制的);动态类型语言将类型检查推迟到运行时。C、C++和Java是静态类型语言;Python、JavaScript和Objective是动态类型语言.还有一些非类型化的语言,包括第四种编程语言。
您还可以根据语言的类型规则对它们进行分组:弱类型(它支持隐式类型转换)和强类型(禁止隐式类型转换)。两者之间的界线有点模糊:根据某些定义,C是一种弱类型语言,而另一些则认为它是强类型语言。无论如何,键入纪律并不是对语言进行分组的有效方法。
发布于 2010-11-09 20:38:03
这些都是主要的,但是有很多其他的范例,而且它们之间有很多重叠。
发布于 2010-11-09 20:14:53
关于编程语言(范例)的类型,请在这里查看:
http://en.wikipedia.org/wiki/Programming_范式
关于编程语言的其他特性(例如,类型系统),请看这里:http://en.wikipedia.org/wiki/Programming_语言
https://softwareengineering.stackexchange.com/questions/17976
复制相似问题