计算机编程语言的发展_基础编程语言

1. 编程语言发展

1.1 1940年之前

第一个编程语言比现代的计算机还早诞生。首先,这种语言是种编码。

于1804年发明的提花织布机(或称甲卡提花织布机),运用打孔卡上的坑洞来代表缝纫织布机的手臂动作,以便自动化产生装饰的图案。

爱达·勒芙蕾丝在1842年至1843年间花费了九个月,将意大利数学家Luigi Menabrea关于查尔斯·巴贝奇新发表机器分析机的回忆录翻译完成。她于那篇文章后面附加了一个用分析机计算伯努利数方法的细节,被部分历史学家认为是世界上第一个电脑程序。

Herman Hollerith在观察列车长对乘客票根在特定位置打洞的方式后,意识到他可以把信息编码记载到打孔卡上,随后根据这项发现使用打孔卡来编码并纪录1890年的人口统计资料。

最先出生的编程语言是机器语言

它非常简单。有多简单呢?简单到只用“1”和“0”两个数字就可以进行编程。

计算机编程语言的发展_基础编程语言

优势:计算机能够直接识别,执行速度快

劣势:学习难度大,编程效率低

1.2 1940年代

最早被确认的现代化、电力引导(electrically powered)的计算机约在1940年代被创造出来。程序员在有限的速度及存储器容量限制之下,撰写人工调整(hand tuned)过的汇编语言程序。而且很快就发现到使用汇编语言的这种撰写方式需要花费大量的脑力(intellectual effort)而且很容易出错(error-prone)。

计算机编程语言的发展_基础编程语言

所以直到现在,汇编语言仍能占有一席之地。只是,这一席被挤得越来越没有空间。

康拉德·楚泽于1948年发表了他所设计的Plankalkül编程语言的论文。但是在他有生之年却未能将该语言实现,而他原本的贡献也被其他的发展所孤立。

在这段期间被开发出来的重要语言包括有:

· 1943 – Plankalkül (Konrad Zuse)

· 1943 – ENIAC coding system

· 1949 – C-10

优势:相比于机器语言难度有所降低

劣势:学习难度大,编程效率低

1.3 1950与1960年代

有三个现代编程语言于1950年代被设计出来,这三者所派生的语言直到今日仍旧广泛地被采用,

其中就有集万千宠爱于一身、引无数程序员竞头秃的高级编程语言诞生了。

· Fortran (1955),名称取自"FORmula TRANslator"(公式翻译器),由约翰·巴科斯等人所发明;是世界上第一个被正式采用并流传至今的高级编程语言

· LISP,名称取自"LISt Processor"(枚举处理器),由约翰·麦卡锡等人所发明;

· COBOL,名称取自"COmmon Business Oriented Language"(通用商业导向语言),由被葛丽丝·霍普深刻影响的Short Range Committee所发明。

用人类能够读懂的字符与计算机沟通交流

优势:学习难度大大降低,编程效率大大提高

劣势:计算机无法直接识别,执行速度相对较慢

1.4 1967-1978:确立了基础范型

1960年代晚期至1970年代晚期的期间中,编程语言的发展也有了重大的成果。大多数现在所使用的主要语言范型都是在这段期间中发明的:

Simula,于1960年代晚期由奈加特与Dahl以Algol 60超集合的方式发展,同时也是第一个设计支持面向对象进行开发的编程语言。

·

C,于1969至1973年间由贝尔实验室的研究人员丹尼斯·里奇与肯·汤普逊所开发,是一种早期的系统程序设计语言。

·

·

Smalltalk,于1970年代中期所开发,是一个完全从零开始(ground-up)设计的面向对象编程语言。

·

·

Prolog,于1972年由Colmerauer、Roussel,以及Kowalski所设计,是第一个逻辑程序语言。

·

·

ML,于1973年由罗宾·米尔纳所发明,是一个基于Lisp所建构的多态(polymorphic)类型系统,同时也是静态类型函数编程语言的先驱。

·

这些语言都各自演展出自己的家族分支,现今多数现代编程语言的祖先都可以追溯他们其中至少一个以上。

·

1.5 1980年代:增强、模块、性能

1980年代的编程语言与之前相较显得更为强大。C++合并了面向对象以及系统程序设计。美国政府标准化一种名为Ada的系统编程语言并提供给国防承包商使用。日本以及其他地方运用了大量的资金对采用逻辑编程语言结构的第五代语言进行研究。函数编程语言社区则把焦点转移到标准化ML及Lisp身上。这些活动都不是在开发新的范型,而是在将上个世代发明的构想进一步发扬光大。

然而,在语言设计上有个重大的新趋势,就是研究运用模块或大型组织化的程序单元来进行大型系统的开发

在这段期间被开发出来的重要语言包括有:

· 1980 – Ada

· 1983 – C++ (就像有类别的C)

· 1984 – Common Lisp

· 1985 – Eiffel

· 1986 – Erlang

· 1987 – Perl

· 1988 – Tcl

· 1989 – FL (Backus)

1.6 1990年代:互联网时代

1990年代未见到有什么重大的创新,大多都是以前构想的重组或变化。这段期间主要在推动的哲学是提升程序员的生产力。许多"快速应用程序开发" (RAD) 语言也应运而生,这些语言大多都有相应的集成开发环境、垃圾回收等机制,且大多是先前语言的派生语言。这类型的语言也大多是面向对象的编程语言,包含有Object Pascal、Visual Basic,以及C#。Java则是更加保守的语言,也具备垃圾回收机制。与其他类似语言相比,也受到更多的关注。

在这段期间被开发出来的重要语言包括有:

· 1990 – Haskell

· 1991 – Python

· 1991 – Visual Basic

· 1993 – Ruby

· 1993 – Lua

· 1994 – CLOS (part of ANSI Common Lisp)

· 1995 – Java

· 1995 – Delphi (Object Pascal)

· 1995 – JavaScript

· 1995 – PHP

· 1997 – REBOL

· 1999 – D

1.7 现今的趋势

编程语言持续在学术及企业两个层面中发展进化,目前的一些趋势包含有:

· 在语言中增加安全性与可靠性验证机制:额外的堆栈检查、信息流(information flow)控制,以及静态线程安全。

· 提供模块化的替代机制:混入、委派(en:delegates),以及观点导向。

· 组件导向(component-oriented)软件开发

· 元编程、反射或是访问抽象语法树

· 更重视分布式及移动式的应用。

· 与数据库的集成,包含XML及关系数据库。

· 支持使用Unicode编写程序,所以源代码不会受到ASCII字符集的限制,而可以使用像是非拉丁语系的脚本或延伸标点符号。

· 图形用户界面所使用的XML(XUL、XAML)。

在这段期间被开发出来的重要语言包括有:

· 2001 – C#

· 2001 – Visual Basic .NET

· 2002 – F#

· 2003 – Scala

· 2003 – Factor

· 2006 – Windows PowerShell

· 2007 – Clojure

· 2009 – Go

· 2014 – Swift (编程语言)

2. 编程语言的分类

高级语言是大多数编程者的选择。高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为解释型和编译型

·

编译型

·

编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

·

类似于谷歌翻译,一次性翻译完成后可以多次使用

·

常用编译型语言:C、C++、Golang

·

·

解释型

·

解释型语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。

·

类似于同声传译,说一句翻译一句

·

常用解释型语言:python、perl、php、ruby

·

计算机编程语言的发展_基础编程语言

3. 总结

编译型语言和解释型语言的差异总结为下表:

计算机编程语言的发展_基础编程语言

TIOBE 4月编程语言排行榜出炉

在TIOBE发布的4月编程语言排行榜中,知名数学算法分析语言MATLAB即将跌出前20,目前刚好排在第20名,这是MATLAB在近十年来首次出现在该位置。至于下降原因,TIOBE CEO Paul Jansen分析道,MATLAB通常与MathWorks的Simulink模型结合使用,每半年发布一次,但由于授权费用昂贵,因此其替代品也在飞速追赶,例如排名第一的Python和本月排名从32位上升到26位的Julia。

TOP 20编程语言排名

计算机编程语言的发展_基础编程语言

TOP 21—50名编程语言

计算机编程语言的发展_基础编程语言

TOP 51—100名编程语言

以下语言列表表示100。由于差异相对较小,下面的编程语言按字母顺序显示:

ABC, Apex, AutoIt, bc, BCPL, Bourne shell, CFML, CL (OS/400), Clipper, CLIPS, Crystal, cT, DCL, Elm, Erlang, EXEC, F, Ladder Logic, LiveCode, LPC, MDX, Mercury, ML, MQL4, MUMPS, NATURAL, Oberon, OCaml, OpenEdge ABL, PostScript, Pure Data, Q, Racket, REXX, Ring, S-PLUS, Scheme、Smalltalk、Snap!、SPARK、Stata、Vala/Genie。

Top 10 编程语言 TIOBE 指数走势(2002-2020)

计算机编程语言的发展_基础编程语言

历史排名(1987-2022)

以下数据来源过去12个月的平均排名:

计算机编程语言的发展_基础编程语言

编程语言名人堂

历届TIOBE年度编程语言榜单

计算机编程语言的发展_基础编程语言

本文【计算机编程语言的发展_基础编程语言】由作者: 乐观锁 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4260.html

(0)
上一篇 2023-03-11 08:59:20
下一篇 2023-03-11 09:05:57

相关推荐

  • 虚幻4引擎崩溃解决方法_steam虚幻引擎崩溃

    虚幻引擎是开发人员用来构建和设计游戏的流行游戏引擎。作为一个套件,它有一些最好的集成工具。但是,在使用Unreal Engine 4时,可能会出现各种问题。其中之一正在崩溃。成千上万的玩家最近报告了同样的问题。但好消息是你可以修复它。 渲云渲染将列出已证明对许多玩家有用的解决方案列表。我们建议您从列表中的第一个修复开始。如果第一个过程做得不够,那么您可以继续…

    2023-03-09
    700
  • wordpress教程菜鸟教程(wordpress外贸独立站)

    对于我们菜鸟来说,WordPress该如何建站,建站后如何优化可能没有一个清晰的概念。建站可能还好一点,只要我们准备好域名、服务器、WordPress CMS模板和宝塔面板控制软件,参照网上建站视频一步一步来,就能完成。 相较于wordpress建站一次搭设长久使用来说,网站TDK、网站布局和网站内容的打造可能更需要我们多了解一下。在网站优化中,一个网站只有…

    2023-03-22
    000
  • linux服务器维护常用命令

    Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。 一、linux的目录结构 · bin (binaries…

    2023-03-08
    600
  • 二次根式与算术平方根之区别

    用基本运算符号把数或表示数的字母连接起来的式子,称为代数式。 基本运算包括加、减、乘、除、乘方和开方,其中,乘方与开方为三级运算 。 开方是指求一个数的方根的运算,为乘方的逆运算。 乘方 求n个相同因数的积的运算,叫做乘方,乘方的结果叫做幂。a叫做底数,n 叫做指数,也可读作“a的n次幂”。 a o = 1 (a≠ 0) a -1 = 1/a 平方根(二次方…

    2023-03-22
    000
  • curl扩展支持 php开启curl

    前言 cURL扩展是每个PHP工程师必须要掌握扩展之一,今天我们一起聊一聊cURL的那些事。 内容概要 1、什么是cURL 2、cURL有啥用处 3、cURL 的工作流程 4、分享利用cURL一个调用API的函数 一、什么是cURL curl是一个开源的,功能强大的,利用URL语法命令行实现文件传输的工具,它支持http,https,ftp等传输协议。 在p…

    2023-03-18
    100
  • switch case语句的用法C语言

    switch-case例题及其与if-else的转换 分享兴趣,传播快乐,增长见闻,留下美好!亲爱的您,这里是LearningYard新学苑。今天小编为大家带来“switch-case例题及其与if-else的转换”,欢迎您的访问。 Share interests, spread happiness, increase knowledge, and leav…

    2023-03-11
    100
  • php开源系统排行(php开发环境)

    近两年来,关于PHP编程语言的讨论声越来越多,很多人唱衰PHP,也有人热衷于讨论“PHP还能火多久”之类的话题,但在小编看来,任何技术的存在,都是需要去考虑业务场景的。据W3Techs近日发布的网站使用语言统计报告显示,在已知服务器端编程语言的所有网站中,有77.6%的网站都在使用PHP语言,有很多中小微型企业还是十分依赖PHP,PHP的应用场景依旧热闹非凡…

    2023-03-16
    100
  • vhdl分频器时钟频率50MHz,10分频器的VHDL代码

    7. 分频器设计(分频输出:1Hz或2Hz的信号) 要求:实验开发板上有一个50MHz的时钟脉冲(此频率过高,接到开发板的LED灯后,无法观察到LED灯一 亮一灭的过程),设计一个分频器,使得分频后的时钟脉冲接到开发板上的LED灯后,肉眼可以观察到LED灯 闪烁。 8. 设计一个十进制加法计数器 使用设计的分频器的输出信号作为计数器的时钟输入,再利用第二次实…

    2023-03-18
    100
  • Google无法访问acrobat

    随着谷歌和其它浏览器都不再支持Acrobat Reader,我们发现大量的客户都在询问相关的信息。 我们需要做的就是把 Acrobat表单(FDF和XFA格式)转换为HTML5格式(将所有的PDF表单元素转换为HTML5表单组件)。该工作能作为移动端上显示Acrobat表单的最佳方式,而不需要浏览器之外的其它软件支持。但是这种情况下,一个新的问题又出现了,就…

    2023-03-16
    100
  • linux操作系统快速入门

    Linux的学习路径简单点来说就是: 计算机概论与硬件相关知识 Linux初级:Linux系统安装、图形界面使用、常用命令 Linux中级:Linux用户和文件系统管理、软件安装配置、网络管理、系统维护、shell编程初步 Linux高级分为两部分: (1)Linux服务器领域:数据库、防火墙、DNS服务器、VPN服务器、Web服务器、Mail服务器、FTP…

    2023-03-08
    600

发表回复

登录后才能评论
返回顶部
错说博客上线啦!