源码先锋

源码先锋

史上最全编程语言列表,你掌握了哪些?

admin 139 16

摘要:计算机编程语言可用于将指令传达给计算机。下面可能是史上最全编程语言列表,我将它们分为以下几类,你掌握了哪些?

计算机编程语言可用于将指令传达给计算机。下面可能是史上最全编程语言列表,我将它们分为以下几类,你掌握了哪些?

1.解释型编程语言

2.函数式编程语言

3.编译型编程语言

4.过程式编程语言

5.脚本编程语言

6.标记编程语言

7.基于逻辑的编程语言

8.并发编程语言

9.面向对象编程语言

解释型编程语言

解释型语言是这样一种编程语言,其大部分实现直接执行指令,而无需先将程序编译成机器语言指令。解释器直接执行程序,它会将每个语句翻译成已编译成了机器代码的一个或多个子程序的序列。(维基百科)

APL

APL以《编程语言(AProgrammingLanguage)》一书命名(Iverson,KennethE.,1962),它是一种数组编程语言。它可以在多个数据阵列上同时工作。它是一种解释型、可交互和函数式的编程语言。

AutoIt

它是自由软件,是一种用于MicrosoftWindows的自动化语言。主要目的是创建可用于在Windows上执行某些重复任务的自动化脚本。

BASIC

于1964年由约翰·乔治·凯米尼(JohnGeorgeKemeny)和托特·尤金·库尔茨(ThomasEugeneKurtz)在达特茅斯(Dartmouth)开发,它是初学者多用符号指令代码(Beginner’sAll-purposeSymbolicInstructionCode)的缩写。它的目的是为非科学人士提供一个使用电脑的途径。

Eiffel

Forth

它是一种结构化的命令式编程语言,其实现基于堆栈。它支持交互式的命令执行以及对命令序列的编译。

Frink

由AlanEliasen开发,以JohnFrink教授命名——他是一位颇受欢迎的虚构人物。它基于Java虚拟机,专注于科学和工程领域。其突出特点是能通过所有的能让数量包含其测量单位的计算,来对测量单位进行跟踪。

GameMaker语言

它是一种解释型的计算机编程语言,旨在与GameMaker配合使用——GameMaker是一种游戏制作应用程序。荷兰计算机科学家马克·奥马斯(MarkOvermars)设计了这种语言。

ICI

ICI是由TimLong于1992年设计的,它是一种通用的解释型计算机编程语言。它支持动态输入,灵活的数据类型以及其它的一些类似于C的语言结构。

J

KenIverson和RogerHui开发了这个只需要使用基础ASCII字符集的编程语言。它是一种数组编程语言,适用于数学和统计操作。

Lisp

Lisp是如今正在被广泛使用的第二古老的高级编程语言。其名称Lisp派生自“列表处理语言(ListProcessingLanguage)”。Lisp支持的重要数据结构之一是链表。Lisp程序会将源代码当做是数据结构。

Lua

计算机图形技术组的成员在1993年开发出了Lua。它被设计成为脚本语言,是一种不可获取的过程式编程语言,以简单而强大而闻名。

M

M是MUMPS的缩写,它是为医疗保健行业而创建的一种编程语言。M语言是由医学信息技术的创始人NeilPappalardo以及他的同事开发出来的。

Pascal

它是一种过程式编程语言,旨在利用上数据结构化和结构化编程的概念。瑞士计算机科学家NiklausWirth设计了这种语言,是以法国数学家和哲学家BlaisePascal来命名的。

PCASTL

它是ParentandChildsetAccessibleSyntaxTreeLanguage(可访问父和子集语法树语言)的缩写,是由PhilippeChoquette开发出来的高级语言,属于解释型的计算机编程语言类型。它是专门为自修改代码而设计的。

Perl

Perl是一种支持动态编程的高级解释型编程语言。它是由LarryWall开发的,而LarryWall则是NASA的系统管理员。它为程序员提供了文本处理的能力,并融合了C、Lisp还有Awk等各种语言的功能特性。

PostScript

它主要在桌面出版领域中使用,被称为页面描述语言。它是一种基于堆栈的动态编程语言,由美国计算机科学家JohnWarnock和计算机科学领域著名人物CharlesGeschke开发。这些开发人员后来一起创立了非常着名的AdobeSystems公司。

Python

它是一种支持强制命令,面向对象和函数式编程样式的高级编程语言。它与Perl在动态类型系统和自动内存管理方面有相似之处。Python最初于1991年由荷兰计算机程序员GuidovanRossum发布,它是一种基于社区的开放性语言,其开发由PythonSoftwareFoundation来进行管理。

REXX

RestructuredExtedExecutor(重构扩展执行器)的简称,它是由IBM开发的解释型语言。它被设计出来的目的是成为一种易于学习和阅读的语言。NetRexx是IBM提供的基于REXX的面向对象编程实现。ObjectREXX是基于REXX的面向对象脚本语言。

Ruby

在20世纪90年代,日本兴起了要开发这样一种语言的动力。它具有与Perl类似的动态类型系统和自动内存管理功能。它支持多种编程样式,是一种动态的面向对象语言。

S-Lang

S-Lang一开始是作为一种基于堆栈的语言来而开发出来,而现在已经演变为一种类似于C的语言。它是由开发出来的。

Spin

Spin是一种多任务且面向对象的编程语言,其编译器会将代码转换为字节码。多个Spin代码线程可以在同时运行,从而实现多任务处理。Spin是由Parallax的ChipGracey开发出来的。

函数式编程语言

函数式编程语言定义每次的计算作为数学求值。他们把焦点集中在函数的应用。大量的函数编程语言被绑定在数学计算上。

Charity

它是一种纯净的函数式,非图灵完备语言,这意味着所有的程序都可以被保证能终止。Charity是由加拿大的一所公立大学——Calgary大学设计的。

Clean

它是一种纯净的函数式编程语言,拥有跨平台能力,自动垃圾收集机制,多数据结构和引用透明性,这些能力意味着一个函数,只要给它一个输入将总是会有一个输出。

Curry

它是一种函数逻辑编程语言,实现了函数式与逻辑编程,还有约束式编程。在约束式编程方法中,变量之间的关系是以约束的形式表示的。

Erlang

它是一种并发编程语言,包含了一系列支持函数式编程的子集。爱立信将Erlang作为一种分布式软实时与容错语言来进行开发,并于1998年将其作为一种开放源代码的计算机编程语言发布,是最常用的函数式编程语言之一。

F都是基于C发展而来。

C代码

C++

它由高级语言和低级语言相结合,因此被认为是一个中级编程语言。贝尔实验室的BjarneStoustrup开发了C++,把它作为C语言的扩展。它最初被称为“含有类的C”,直到1983年才被称为C++。它是一种支持过程化编程、泛型编程、面向对象编程和数据抽象的多样化语言。

[译者注:multi-paradigm中的paradigm指形式,常见的编程形式包括:命令式(imperative)、函数式(functional)、申明式(declarative)、面向对象(object-oriented)、过程化(procedural)、逻辑化(logic)、风格化(symbolic)——参考维基百科]

C的影响。它支持静态和动态类型,适用于单元测试。现在它是一个开源项目。

D

它最初被设计为C++的增强,受Java、Eiffel和C#的影响。它是面向对象、命令式、多样化的系统编程语言,由DigitalMars的WalterBright开发。

DASL

它是DistributedApplicationSpecificationLanguage(分布式应用程序描述语言)的缩写,是由Sun公司开发的一款高级、强类型的编程语言。创建它是为了用来开发Web应用。

DIBOL

DIBOL是DigitalInteractiveBusinessOrientedLanguage(面向商业的数字互动语言)的简写,它是通用过程命令式的编程语言。它和COBOL很像,适用于管理信息系统的开发。

Fortran

这是过程化、命令式的通用计算机编程语言,适用于科学计算和数值运算。自IBM于20世纪50年代开发出来,它迅速走红。它是结构化的编译型编程语言,在高性能计算领域非常流行。它是Fortran95的子集。Fortran的修订版本,Fortran2003支持面向对象编程。

Java

它是通用计算机编程语言,并发,基于类,面向对象并专门针对尽可能少的依赖来进行设计。编译后的Java代码可以不需要再次编译就运行于各种支持Java的平台。是现代非常流行的语言。

JOVIAL

它是类似ALGOL的高阶计算机编程语言。它适用于嵌入式系统的设计和开发。

Objective-C

它是一种反射式面向对象程序编程语言,在C的基础上添加了消息服务。

SMALL

它的名称表示SmallMachineAlgol-likeLanguage(类似Glgol的小型机器语言)。它的代码与ALGOL类似,用于在小型机上编程。

Smalltalk

它是反射式的面向对象编程语言,支持动态类型。AlanKay、AdeleGoldberg、DanIngalls、ScottWallace、TedKaehler和他们在XeroxPARC的同事开发了Smalltalk。他们为教育用途设计了Smalltalk,之后它就流行起来了。VisualWorks是Samlltalk的优秀实现。Squeak是Smalltalk的一种实现形式。Scratch是基于Squeak的可视化编程语言。

Turing

它于1982年由加拿大多伦多大学的RicHolt和JamesCordy开发出来。它的名字是为了纪念英国计算机科学家AlanTuring(艾兰·图灵)。它很像Pascal,从2007年开始免费。

VisualBasic

这是一个事件驱动的编程语言,通过集成开发环境打包。它从BASIC继承了很多特性。它的图形化开发特性使初学者学习起来非常容易。

VisualFoxPro

XL

它的诞生是为了支持概念编程,这是一种致力于将程序员脑中的概念转化为代码的编程形式。程序可以重新配置XL的语法和语义。

过程式编程语言

过程式(命令式)编程意味着需指定程序应该达到预期状态的步骤。过程是可以通过过程调用引用的一组语句。过程有助于代码中庸。过程式编程使程序结构化,易于追踪程序流程。

Bliss

它是一种系统编程语言,是在C语言出现之前最知名的语言之一。卡内基梅隆大学的、和发明了Bliss。它包括异常处理机制、协程和宏,但并不包括goto语句。

ChucK

它是可以在MacOSX、Linux以及MicrosoftWindows上运行的并发和强音频定时的编程语言。它特别以其为程序员提供在运行程序中做一些修改的能力而著称。

CLIST

它是一种使用命令集合的形式表示的过程式编程语言,这些命令集合需要像批处理文件一样顺序执行。

HyperTalk

它是一种高级编程语言,旨在给程序员的初学者使用。这种计算机语言的程序员被称为作者,编写程序的行为被称为脚本。HyperTalk由DanWinker于1987年设计,结构上类似于Pascal。

Modula-2

它是1978年由NiklausWirth在ETH创立的通用过程式语言。它与Pascal类似,具有系统编程和多重编程功能。

Oberon

NiklausWirth、Pascal和Modula背后的人,在1986年提出了Oberon,它被设计为Oberon操作系统的一部分。它类似于Modula-2,但比它小得多。

ComponentPascal

这是一种看上去似乎与Pascal相关的编程语言,但实际上与它不兼容。它实际上是Oberon-2的一个变种。Lagoona是一种实验性编程语言,支持面向组件的编程、将系统分解为逻辑或功能组件的范式。NiklausWirth的学生MichaelFranz发明了Lagoona。Seneca,以Oberon-2著称,是Oberon编程语言的扩展。

MATLAB

它是一种数值计算环境和一种能够进行矩阵计算、功能绘图和算法实现的编程语言。它也可以用于创建用户界面。MathWorks创建了MATLAB。

Occam

这是由DavidMay和他的同事们在INMOS发明的一项命令式程序性语言。它类似于Pascal。Occam-pi是Occam的一种变体,已经扩展到包括嵌套协议、递归、协议继承、数组构造函数和运行时进程创建。

PL/C

它被发明之后用于教授编程知识。它是在20世纪70年代在康奈尔大学创建的。

PL/I

它是针对科研和工程应用的必需的计算机编程语言。主要用于执行数据处理,它还支持结构化编程和递归。

Rapira

它是一种在苏联学校教授计算机程序设计的过程式编程语言。苏联开发的这种语言最初是基于俄语的关键词。随后才加入的英文关键词。

RPG

此编程语言用于业务应用程序中。它可以与IBM的SystemI中间件计算机一起使用。

脚本语言

脚本语言是用来控制应用程序的编程语言。脚本可以独立于其它任何应用程序执行。它们多数时候嵌入在应用程序中,用于控制或用于执行频繁执行的自动任务,比如与外部程序通信的任务。

AppleScript

它是MacOS内建的脚本语言。

Awk

Awk于上世纪70年代诞生于贝尔实验室。它使用字符串数据类型、数组和正则表达式来处理数据流和文件中基于文本的数据。

BeanShell

它是Java脚本语言,其语法与Java相似,是在Java运行环境中运行的脚本命令和语法。

ColdFusion

它是应用服务器和软件开发框架,带有一个被称为ColdFusionMarkupLanguage(ColdFusion标记语言)的脚本语言。它被称为CFML,其语法与HTML类似。

F-Script

它是一种面向对象的脚本语言,与Smalltalk非常接近,但增加了数组编程的特性。

JASS

它是一个事件驱动的脚本语言,为程序提供了广泛的API。

MayaEmbeddedLanguage

它是Maya软件中处理任务的脚本语言,缩写为MEL。它的语法类似Perl。

Mondrian

这个脚本语言为Internet应用而生,它可以看作是Haskell和Java的结合。

PHP

PHP是一种普遍使用的脚本语言。它用于创建动态网页,同时也支持命令行接口。

Revolution

它是基于HyperTalk的快速应用程序开发语言。它跨平台,支持动态类型。

Tcl

它被认为是一种容易学习的脚本语言。它用于嵌入式系统的快速原型开发。

VBScript

它是微软开发的VisualBasic的变体,非常活跃。VBScript在微软Windows桌面系统中都作为默认组件存在。

WindowsPowerShell

它是微软的命令行shell和脚本语言。它于2006年发布,可用于WindowsXP、WindowsVista以及WindowsServer2003和WindowsServer2008[译者注:还有更新一些的Windows版本]。它与框架合作,包括可执行程序、独立应用中的窗体、常规的.NET类等。Cmdlet是特定的.NET类和脚本,或者由一些Cmdlet通过必要逻辑组合起来。

标记编程语言

标记编程语言(MarkupLanguages)是一种人造语言,它使用文本注释来定义这些文本的显示方式。

Curl

它是一种反射式的面向对象的编程语言。它是一种类似于HTML的标记语言。Curl是支持多重继承的面向对象编程语言。

SGML

标准化通用标记语言(SGML)是来自IBM的通用标记语言。它是可以为文档定义标记语言的ISO标准元语言。它的目的是共享必须长期保留下来的大型项目机读文件。

HTML

超文本标记语言(缩写为HTML)是用于网页的最著名的标记语言。它是用HTML标签的形式写成的,它们被尖括号所包围。HTML标签描述了文档中的文本外观,并且可以嵌入到某些其他代码中以影响Web浏览器的行为。HTML使用SGML的默认语法。

XML

这个名字代表可扩展标记语言(ExtensibleMarkupLanguage)。它是可扩展的,因为它允许用户自定义XML元素。它支持通过互联网共享结构化数据以及数据的编码和序列化。它起源于SGML的一个子集。XPath是用于从XML文档中选择节点的XML路径语言。它支持值计算。XQuery用于查询XML数据的集合。可扩展样式表语言转换(XSLT)是一种基于XML的语言,用于将XML文档转换为人类可读的格式。ApacheAnt是软件构建过程中的自动化工具。它使用XML来描述构建过程。

XHTML

它是一种与HTML类似的标记语言,遵循XML语法。它是HTML和XML之间的过渡。XHTML文档允许自动处理数据。

基于逻辑的编程语言

逻辑编程是一种基于形式逻辑的编程范例。用逻辑编程语言编写的程序都是逻辑形式的一组句子,表达关于某些问题域的事实和规则。(维基百科)

ALF

代数逻辑函数式(AlgebraicLogicFunctional)编程语言是一种多范式的编程语言,它是功能编程和逻辑编程的组合。ALF程序语句会被编译成一种抽象机指令。用C编写的仿真器可以执行抽象机的程序。

Fril

Fril语言是由TrevorMartin和JimBaldwin于20世纪80年代在布里斯托大学的时候设计的。它主要面向一阶谓词演算,支持模糊集和元编程,基于Prolog的语法。

Janus

Janus支持并发和约束式编程。

Leda

这种计算机编程语言是基于逻辑的,函数式,命令式和面向对象编程的混合体。因此,它是一种多范式语言。

Oz

它是一种多范式语言,支持函数式,基于逻辑的,命令式和面向对象编程。Oz还支持并发和分布式编程。支持约束式编程是Oz语言的优点之一。

Poplog

它是一个强大的多范式软件开发环境,其核心语言是POP-11。该开发环境的所有语言共享一个共同的语言编辑器,并且是增量编译的编程语言。

Prolog

它是一种支持逻辑编程的通用编程语言,通常可以连系到人工智能和计算语言学。语言是声明式的,程序逻辑则以关系的形式来表达。Mercury是基于Prolog的函数式逻辑编程语言。StrawberryProlog是Prolog的一种方言,被设计得易于使用。VisualProlog是支持面向对象编程的Prolog强类型扩展。它是一种基于逻辑的编译型编程语言。

ROOP

它是一种基于C++的多范式语言,推出目的是在与人工智能系统一起使用。其功能融合了函数式、逻辑和面向对象编程。

并发编程语言

并发编程是一种计算机编程技术,可以让操作并行执行——在单计算机或者跨越多台计算机上都可以实现,而在后一种情况下,使用术语分布式计算。(维基百科)

ABCL

它是基于Actor的并行语言(Actor-BasedConcurrentLanguage)的一个语言系列,是在日本于1980年代和90年代开发出来的。ABCL/1、ABCL/R以及ABCL/R2就是ABCL系列的一些成员。

Afnix

它是一种多线程函数式编程语言。它的解释器是用C++编写的。其运行时引擎支持32位和64位平台。

Cilk

Cilk是麻省理工学院实验室在1994年创建出来的,支持多线程并行编程。

ConcurrentPascal

美国丹麦裔计算机科学家PerBrinchHansen创建了ConcurrentPascal,用来编写操作系统和为实时系统编程。

E

它是一种支持分布式编程的面向对象编程语言。E是在1997年由马克·米勒,丹·博恩斯坦与他们在电气社区的同事们一起开发出来的,其语法类似于Java。

Joule

Joule出现在E编程语言之前,是一种并发数据流编程语言,可用于开发分布式应用程序。

Limbo

在贝尔实验室开发出来的Limbo可用于为分布式系统编写程序。它的显着特点就是其编译器能够生成独立于体系结构的目标代码。Limbo被用来开发在Inferno操作系统上运行的应用程序。最初作为Plan9操作系统一部分的Alex就是Limbo的前身。

Pict

它是一种静态类型的编程语言,现在还处在实验阶段。

SALSA

SimpleActorLanguageSystemandArchitecture(简单Actor语言系统和架构)的简称,SALSA支持并行编程,消息传递和分布式计算。为了具备可移植性,它使用了Java代码。

SR

其名称SR是SynchronizingResources(同步资源)的首字母缩略词,是一种并行编程语言。

面向对象编程语言

面向对象编程(OOP)是基于“对象”思想的编程规范,它包含数据,一般称为属性,表现为字段(field)的形式;还包含代码,一般称为方法,表现为程序的形式。在OOP中,计算机程序是根据对象与对象之间的交互来设计的。(Wikipedia)

Agora

这是一种基于原型的面向对象编程语言,具有消息传递机制。

BETA

它是一种面向对象的编程语言,其类和过程围绕相同的概念,而且类被定义为对象的属性。它具有很强的抽象机制。BETA还支持嵌套类。

Cecil

这是由CraigChambers在华盛顿大学创建的一种面向对象编程语言。它与Objective-C和Modula-3非常相似。

Lava

Lava是一种解释性的可视化面向对象编程语言。

Lisaac

这是基于原型概念的首款编译性面向对象编程语言。它还支持系统编程。

MOO

这是一种基于动态类型原型的编程语言,支持面向对象编程。它支持异常处理机制和循环结构。

Moto

这是开源的服务器端编程语言,拥有状态和会话管理对象以及数据库连接。

Object-Z

这个语言由澳大利亚的Queensland大学开发。它扩展了Z编程语言,为其添加了面向对象的特性。

Obliq

这是一种提供面向对象编程特性的解释性计算机编程语言。它支持无类型变量,被设计用于分布式和多线程计算机。

Oxygene

Oxygene是一种基于ObjectPascal的面向对象编程语言,拥有丰富的功能集。它以前被称为‘Chrome’。

Pliant

它基于动态编译器,具有独特的能力来支持低级指令列表,同时也支持高级表达式。

Prograph

它是可视化的面向对象语言,支持多种样式,使用符号来表示数据上的操作。

REBOL

REBOL由RelativeExpressionBasedObjectLanguage(基于对象的相关表达式语言)的首字母组成。它被设计用于分布式平台和网络通信。

Scala

Scala名称表示它是可扩展(Scalable)的语言。它是一种多范型编程语言,提供了面向对象及函数式编程能力。

Self

这是基于原型的面向对象编程语言。NewtonScript在很大程序上受Self影响,它用于为AppleNewton编写程序。

Slate

这个面向对象编程语言也是基于原型概念的。它有一些特性来自Smalltalk和Self语言。Slate设计出来的目的是为程序员提供一个像操作系统的样的环境。

XOTcl

它是从ToolCommandLanguage[译者注:可能叫Tcl更容易认出来]扩展而来,支持元类、动态类和方法。

IO

这是纯面向对象编程语言,拥有基于原型对象的模型。它体积不大,可以在小型便携式虚拟机上运行。

转载自阿里云合作媒体51CTO

來源:简书

本文又小篇自己配图,你们认识其中几种编程语言呢,欢迎留言讨论。。。