阅读更多

1顶
1踩

编程语言

转载新闻 程序员必知的编程语言编年史

2013-12-16 11:05 by 见习编辑 tuhaihe 评论(6) 有12652人浏览
我们都知道,编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是设计程序语言的初衷不同,对语言学习曲线的追求不同,不同程序之间的运行成本差异等。

下面这张图片描绘了整个编程语言的历史。包括各种编程语言的发明人,编程语言的特点和适用领域,被什么网站或公司使用等。

编程语言历史

编程语言的历史早于真正意义的计算机的出现。19世纪就有“可编程的”织布机和钢琴弹奏装置出现,它们都是领域特定语言(DSL)的样例。





那些经典的编程语言

我们一个统计出来256种编程语言,当然,这么多的语言中只有一些是常用的或实用的。

发明时间语言类型
1951 Regional Assembly Language
1952 Autocode
1954 IPL(LISP语言的祖先)
1955 FLOW-MATIC(COBOL语言的祖先)
1957 FORTRAN(第一个编译型语言)
1957 COMTRAN(COBOL语言的祖先)
1958 LISP
1958 ALGOL 58
1959 FACT(COBOL语言的祖先)
1959 COBOL
1959 RPG
1962 APL
1962 Simula
1962 SNOBOL
1963 CPL(C语言的祖先)
1964 BASIC
1964 PL/I
1966 JOSS
1967 BCPL(C语言的祖先)
1968 Logo
1969 B(C语言的祖先)
1970 Pascal
1970 Forth
1972 C
1972 Smalltalk
1972 Prolog
1973 ML
1975 Scheme
1978 SQL
1980 C++(既有类的C语言,更名于1983年7月)
1983 Ada
1984 Common Lisp
1984 MATLAB
1985 Eiffel
1986 Objective-C
1986 Erlang
1987 Perl
1988 Tcl
1988 Mathematica
1989 FL
1990 Haskell
1991 Python
1991 Visual Basic
1993 Ruby
1993 Lua
1994 CLOS(ANSI Common Lisp的一部分)
1995 Java
1995 Delphi(Object Pascal)
1995 JavaScript
1995 PHP
1996 WebDNA
1997 Rebol
1999 D
2000 ActionScript
2001 C#
2001 Visual Basic .NET
2002 F#
2003 Groovy
2003 Scala
2007 Clojure
2009 Go
2011 Dart

从1951年至今,人类一共发明了256种编程语言,每一种语言的出现都带有某些新特征。编程语言不断的在革新,很快就会有超出这个清单的新编程语言出现。

希望你喜欢这篇编程语言历史介绍,请分享给你的朋友,如果你对这些统计有任何的想法,别忘了在下面评论里留言。

原文:Justwebworld / 编译:外刊IT评论
  • 大小: 922.8 KB
1
1
评论 共 6 条 请登录后发表评论
6 楼 hq2999 2013-12-19 15:37
没想到Lua、Ruby比Java还早
5 楼 hufangxian 2013-12-19 14:30
好像没有汇编语言
4 楼 cyruscript 2013-12-17 12:53
ALGOL 60不算进去?
3 楼 上下求索的浩 2013-12-16 14:58
liu78778 写道
256 应该说是255种,从第0种开始算

索引时255,长度是256
2 楼 liu78778 2013-12-16 13:14
256 应该说是255种,从第0种开始算
1 楼 somefuture 2013-12-16 13:07
这么少?一直以为早超过1000种了呢

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 作为程序员必须知道的编程语言编年史

    作为程序员必须知道的编程语言编年史.我们都知道,编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据...

  • c语言整数编年历系统,程序员必知的编程语言编年史

    该楼层疑似违规已被系统折叠隐藏此楼查看此楼编程语言发展的编年史我们一个统计出来256种编程语言,当然,这么多的语言中只有一些是常用的或实用的。1951 – Regional Assembly Language1952 – Autocode1954 – IPL...

  • 编程语言编年史:作为程序员的你怎能不知?

    从1951年至今,人类一共发明了256种编程语言,它们的面世,不断迭代着编程技术的发展,进而驱动着社会科技滚滚向前、日新月异,每一种语言的出现都带有某些新特征,每一种语言都并非彼此独立的。而它们仍旧在不断的...

  • 编程语言编年史

    编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢? 1800年 Joseph Marie Jacquard教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明...

  • 一张图概括编程语言发展史

    编年史 Intro 编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况...

  • 编程语言的“别样”编年史

    ... 大数据文摘出品编译:狗小白、云舟代码是一门语言,这门语言搭建了人与计算机沟通的桥梁。通过编写代码,人类可以“命令”计算机开发网页、开发软件、搭建游戏... ... 这门语...

  • 硬件-7-计算机的历史和编程语言的编年史

    2 计算机的编年史 计算机的编年史,史上最全! 2.1 十七世纪 1614年 苏格兰人约翰·纳皮尔(John Napier)发表了一篇论文, 其中提到他发明了一种可以计算四则运算和方根运算的精巧装置。 1623年 威廉·契克卡德...

  • 6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

    计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言   编程 指令的概念很早就形成了,其实指令本身就是一种编程 一个指令替代了一组逻辑电路或者机电式/机械式中的一个计算单元 你只需要一个...

  • 编程语言史

    前言 编程语言是一组用来定义计算机程序语法规则且被标准化交流语言,用来向计算机发指令。一种计算机语言使程序员准确定义计算机所需数据并精确定义不同...包括各编程语言发明人、编程语言特点和适用领域,被什么网站

  • 程序语言编年史

    程序语言编年史 概述 这次咱们聊下程序语言的发展史,除了程序语言,还会着重讲下程序语言密切相关的计算机的发展史,顺带讲下同时期与程序语言和计算机相关领域的发展,为什么要把程序语言和计算机相关领域放...

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

  • #游戏之追逐奶酪123

    #游戏之追逐奶酪123

  • 威纶通触摸屏配方管理系统解析:宏程序、数据结构与UI设计

    内容概要:本文详细介绍了威纶通触摸屏配方管理系统的实现方法及其应用场景。首先,文章讲解了配方管理的基本概念和技术背景,强调了配方管理在工业自动化中的重要性。接着,通过具体的宏程序代码示例,展示了如何实现配方的保存、加载以及安全校验等功能。文中还提到配方数据结构的设计,如使用寄存器地址偏移来确保数据不冲突,并通过CSV文件格式方便地管理和维护配方数据。此外,文章深入探讨了UI设计方面的内容,包括动态图层技术和按钮交互效果的应用,使得用户界面更加友好和直观。最后,作者分享了一些实际项目中的经验和技巧,如文件操作的异常处理和宏指令调试方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对触摸屏配方管理系统感兴趣的读者。 使用场景及目标:适用于需要频繁切换设备参数的生产环境,如食品加工、注塑成型等行业。通过使用威纶通触摸屏配方管理系统,可以提高工作效率,减少人为错误,同时简化设备调试和维护流程。 其他说明:附带的工具包提供了完整的宏指令注释版、图库资源和调试工具,帮助用户更好地理解和应用该系统。

  • 张彩明-图形学简明教程 配书资源

    张彩明-图形学简明教程 PPT课件

  • 计算机术语.pdf

    计算机术语.pdf

  • 基于改进粒子群算法的微电网多目标优化调度模型与算法分析

    内容概要:本文详细介绍了利用改进粒子群算法(IPSO)进行微电网多目标优化调度的方法和技术。首先指出了传统粒子群算法(PSO)存在的局限性,如初始化随机性和易陷入局部最优等问题。接着提出了多种改进措施,包括混沌映射初始化、动态权重调整、自适应变异以及引入帕累托前沿机制等。文中通过具体的代码实例展示了这些改进的具体实现,并通过实验验证了改进后的算法在处理微电网优化调度问题时的有效性,尤其是在应对风光发电不确定性方面表现突出。此外,文章还讨论了实际应用场景中的约束处理方法,如功率平衡约束的修复策略,确保理论与实践相结合。 适合人群:对智能优化算法及其在电力系统特别是微电网中的应用感兴趣的科研人员、工程师及研究生。 使用场景及目标:适用于需要对微电网进行多目标优化调度的研究和工程项目,旨在提高微电网运行效率,降低成本并减少环境污染。通过学习本文提供的改进算法和技术手段,能够更好地理解和掌握如何针对特定业务场景定制化地改进经典优化算法。 其他说明:文章不仅提供了详细的理论分析和算法改进思路,还包括了大量的代码片段和实验结果,有助于读者深入理解并快速应用于实际项目中。

  • S7-1200 PLC与组态王实现7车位3x3立体车库控制系统

    内容概要:本文详细介绍了基于西门子S7-1200 PLC和组态王的7车位3x3升降横移立体车库控制系统的设计与实现。主要内容涵盖IO分配、梯形图程序、接线图、组态画面设计以及安全防护逻辑等方面。文中强调了硬件互锁、软件互锁、模块化编程、精确控制和平移控制等关键技术点,并分享了一些调试经验和注意事项。此外,还讨论了光电传感器误触发、急停按钮处理、故障记录等实际应用中的挑战及其解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉PLC编程和组态软件使用的专业人员。 使用场景及目标:适用于需要设计和实施立体车库控制系统的工程项目。目标是帮助读者掌握S7-1200 PLC与组态王的具体应用方法,提高系统可靠性和安全性。 其他说明:文中提供了详细的代码片段和配置示例,有助于读者更好地理解和实践相关技术。同时,作者分享了许多宝贵的实战经验,对于初学者和有一定经验的技术人员都非常有价值。

  • 数据结构解析:线性表顺序表示的原理、操作及应用

    内容概要:本文详细介绍了线性表及其顺序表示的概念、原理和操作。线性表作为一种基础数据结构,通过顺序表示将元素按顺序存储在连续的内存空间中。文中解释了顺序表示的定义与原理,探讨了顺序表与数组的关系,并详细描述了顺序表的基本操作,包括初始化、插入、删除和查找。此外,文章分析了顺序表的优点和局限性,并讨论了其在数据库索引、图像处理和嵌入式系统中的实际应用。最后,对比了顺序表和链表的性能特点,帮助读者根据具体需求选择合适的数据结构。 适合人群:计算机科学专业的学生、软件开发人员以及对数据结构感兴趣的自学者。 使用场景及目标:①理解线性表顺序表示的原理和实现;②掌握顺序表的基本操作及其时间复杂度;③了解顺序表在实际应用中的优势和局限性;④学会根据应用场景选择合适的数据结构。 其他说明:本文不仅提供了理论知识,还附带了具体的代码实现,有助于读者更好地理解和实践线性表的相关概念和技术。

Global site tag (gtag.js) - Google Analytics