• 计算机编程语言的发展史


    计算机编程语言的发展史

    1940s,产生了真正意义上的电子计算机,这个时期的语言由于内存和计算能力的有限,都是使用硬件相关的汇编语言;

    1950s~1960s,随着电子技术的进步,计算机进入大型机时代,一些高级语言被逐渐开发出来主要用于系统级编程和数学计算,

    Fortran(1950s由IBM团队发明的数学计算语言),

    COBOL(1950s由IBM等行业领袖推行的金融、商务系统开发语言),

    LISP(用于人工智能领域,主要的数据结构是Linked List,全名为List Process语言,引入了很多先进的特性如递归、动态类型、自动内存管理等特性)

    ALGOL(用于算法描述、学术领域,引入嵌套结构,语法范围等,很大的影响了BPCL,B,PASCAL等语言

    Basic(最早是为给非科学领域的学生所编写,Microsoft VB的前身)

    1970s,产生了C语言和一些早期的面向对象编程语言

    C(1970s由Dennis Ritchie和Brian Kernighan发明的为DEC机开发的系统编程语言,前身是BPCL,B语言)

    Simula(第一个支持面向对象的编程语言)

    SmallTalk(第一个完整实现面向对象特性的编程语言)

    1980s,向PC时代过渡,语言特性的合并、优化、发展

    C++(综合了SmallTalk面向对象特性和C语言语法,最为广泛应用的面向对象语言之一)

    机器语言--->汇编语言-->高级计算机语言

     机器语言:最初的计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,计算机只能被少部分人使用,人  们需要用0、1组成的指令序列交由计算机执行,对于机器语言的使用与普及都是很令人头疼的问题。对于程序的移植能力几乎没有,从而时间成本,人力成本十分昂贵。但机器语言也不是没有优势,由于这种语言是直接对计算机硬件进行操作,所以在特定型号的计算机上面,运算效率也是很高的,机器语言的出 现对于未来的计算机语言发展起到了很好的推动作用,所以机器语言也是第一代计算机语言。

    汇编语言:汇编语言是在机器语言的基础上诞生的一门语言,用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,这也提高了语言的记忆性和识别性。对于程序的开发与维护起到了积极作用。汇编语言同样也是直接对硬件进行操作,这样依然局限了它的移植性。但是使用汇编语言针对计算机特定硬件而编制的汇编语言程序,对于计算机硬件的功能和特长的发挥已有了很大进步,它精炼而质量高,所以至今仍是一种常用的程序开发语言。

    高级计算机语言:在与计算机的不断交流中,人们对计算机程序的移植性需求不断提高,此时急需要一种不依赖于特定型号的计算机的语言,用这种语言编写的程序能在在各种平台都正常运行。从最初的语言诞生至今,已经相继出现了几百种语言。高级语言的发展也从最初的结构化语言发展成为面向过程语言设计和面向对象语言设计。面向过程语言设计的代表有:C语言,Fortran,cobol,pascal,ada等等一系列语言,而面向对象语言设计的代表则为:java, c++,c#等。
    对于面向过程的程序来说,执行顺序是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向,这恰恰与人们的日常处理事情的方式相矛盾。而对于面相对象的程序设计来说,很好的将事物象的部分抽取归类,各个累与模块之间能相互组合,完成特定的功能,同时又能重复使用。对使用者的技术要求也相对降低。

    MATLAB(工业领域,工程计算语言)

    Objective-C(iOS编程语言,已经是Top5的语言之一)

    Erlang(多重范式编程语言,函数式、并发式、分布式,80年代由爱立信发明用于通信网络编程,现已广泛应用于互联网高并发分布式计算领域,最有名的作品包括CouchDB/RabbitMQ)

    Perl(源于Unix脚本的动态语言,初衷是为了使报告更容易处理,借鉴了C/sh/AWK和SED)

    Tcl(曾经是很流行的测试脚本语言,现在已经没落)

    1990s,PC时代,互联网时代萌芽,产生了很多动态语言和可视化编程集成环境IDE

    Windows由于垄断PC市场,其基于VC/VB的桌面应用开发曾经是客户端开发技术的主流,

    随之而来催生了大量的基于Windows SDK客户端应用,MFC是其中最为知名的一个C++类库实现

    Python/Ruby/Lua/PHP/JS

    Java(发展为3个体系,J2SE/J2EE/J2ME,J2EE包含一些企业特性如JDBC, JPA, JTA/JMS/EJB,J2ME是移动版本)

    Visual Basic/Visual C++/Delphi(Object Pascal)/Power Builder

    Javascript(浏览器客户端脚本,Netscape发明,包含ECMAScript核心脚本, DOM文档对象模型, BOM浏览器对象模型三部分)

    2000s~现在, 互联网/移动互联网时代,C/S模式进化为B/S模式,Java/PHP/.Net大行其道,并行计算/分布式计算越来越重要

    ActionScript(Adobe公司发明,面向对象的Flash开发语言)

    C#/Visual Basic.Net

    Groovy(由VMVare支持,基于Java平台的动态语言,支持元数据编程Metaprogramming,动态扩展对象数据,如反射,

    还比如范型编程(如C++的STL,最早版本由HP实现)能为语言提供运行时再确定的动态类型特性,可以大大简化编码)

    Go (C语言之父发明的并行计算语言)

    Node.js(服务器端的JS运行环境,Js语言在服务器端的延伸,具有单线程,高并发的特性)

  • 相关阅读:
    C语言:计算并输出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)...+(1+2^0.5+3^0.5+...+n^0.5)
    C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。
    C语言:把分数最低的学生数据放入数组b所指的数组中,-从键盘输入若干字符串,写入文件myfile4中,用-1作字符输入结束的标志,
    C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,
    C语言:将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,
    负载测试、压力测试和性能测试的区别
    一个有广告的纸杯子的测试用例设计(黑盒测试用例设计)
    java中Comparator的用法
    java 判断字符串中 大小写字母 数字和其他字符个数方法
    java Socket和ServerSocket多线程编程
  • 原文地址:https://www.cnblogs.com/ambitious-to-49/p/10146437.html
Copyright © 2020-2023  润新知