编程语言历史

             
         C语言发展史
 
1、第一个编程语言比现代的计算机还早诞生。首先,这种语言是种编码(en:code)。于1801年发明的提花织布机(或称甲卡提花织布机,英文:en:Jacquard loom),运用打孔卡上的坑洞来代表缝纫织布机的手臂动作,以便自动化产生装饰的图案。
 
Ada Lovelace在1842年至1843年间花费了九个月,将意大利数学家Luigi Menabrea关于查尔斯•巴贝奇新发表机器分析机的回忆录翻译完成。她于那篇文章后面附加了一个用分析机计算伯努利数方法的细节,被部分历史学家认为是世界上第一个电脑程序。
 
Herman Hollerith在观察列车长对乘客票根在特定位置打洞的方式后,意识到他可以把资讯编码记载到打孔卡上,随后根据这项发现使用打孔卡来编码并纪录1890年的人口统计资料。
 
第一个计算机程式码是针对他们的应用面设计的。在20世纪的前十年主要是用十进制来算数,后来人们发现不只是用文字,也可以用数字来表现逻辑。举例来说,阿隆佐•邱奇曾以公式化(formulaic)的方式表达λ演算。图灵机是一种纸带标记(tape-marking)机器(就像电话公司用的那种)操作方法抽象化后的集合。图灵机这种透过有限数字(finite number)呈现机器的方式,奠定了程式如同冯•诺伊曼结构计算机中的资料一样地储存的基础。但不同于λ演算,图灵机的程式码并没有办法成为高阶编程语言的基石,这是是因为它主要的用途是分析算法的复杂度。
 
 
 
就像许多历史上的"第一次"一样,第一个现代编程语言也很难界定。最一开始是因为硬件限制而限定了语言,打孔卡允许80行(column)的长度,但某几行必须用来记录卡片的顺序。FORTRAN则纳入了一些与英文字词相同的关键字,像是"IF"、"GOTO"(原字词为go to),以及"CONTINUE"。之后采用磁鼓(magnetic drum)作为内存使用,也代表计算机程式也必须插入(interleave)到磁鼓的转动(rotation)中。和现今比较起来,这也让编程语言必须更加依赖硬件(hardware-dependent)。
 
 
 
对部分的人认为必须在"编程语言"的状态确立之前,根据能力(power)以及可读性(human-readability)的程度来决定历史上第一个编程语言是什么语言。提花织布机和查尔斯•巴贝奇所制作的差分机(en:Difference Engine)都具备在大量限制下,简单描述机器应执行行为的语言。也有种并非设计给人类运用的受限特定领域语言(en:domain-specific language),是将打孔卡运用到自动演奏钢琴(en:player piano)上。
 
2、ALGOL,为“算法语言”(ALGOrithmic Language)的缩写,是计算机发展史上首批产生的高级程式语言家族。ALGOL语言并没有被广泛的使用,但它是许多现代程序语言的概念基础。
 
Algol 58:1958年,ACM小组和以当时联邦德国的应用数学和力学协会GAMM在苏黎世把他们关于算法表示法的建议综合为一,形成了Algol 58,先被命名为IAL(国际代语言,International Algebraic Language),后来改称Algol 58。
 
Algol 60:1960年1月,图灵奖获得者:艾伦•佩利在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了"算法语言Algol 60报告",确定了程序设计语言Algol 60。Algol60语言的第一个编译器由艾兹赫尔•戴克斯特拉来实现。1962年,艾伦。佩利又对Algol 60进行了修正。
 
Algol 60引进了许多新的概念如:局部性概念、动态、递归、巴科斯-诺尔范式BNF(Backus-Naur Form)等等。Algol 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。
 
Algol 68:Algol W:1966年,IFIP吸收尼克劳斯•维尔特参加对Algol语言进行完善与扩充的工作小组。沃思参加进去以后,提交了一份建议书并由东尼•霍尔等人修改、完善以后形成Algol W。Algol 68一些较少被使用到的语言功能(如同步与并列区块)、语法捷径的复杂系统,以及型态自动强制转换(coercions),使得实作者兴趣缺缺,也让Algol 68获得了很难用(diffcult)的名声。尼克劳斯•维尔特就干脆离开该设计委员会,另外在开发出更简单的Pascal语言。
 
1.CPL(英语:Combined Programming Language,原名Cambridge Programming Language)在1963年,由英国的剑桥大学和伦敦大学首先开发出来。CPL语言在ALGOL 60的基础上更接近硬件一些,但规模比较大,难以实现。
 
3、BCPL(Basic Combined Programming Language),源自CPL语言,1966年由剑桥大学的马丁•理察德(Martin Richards)所发展出来的。
 
Richards试着移除了CPL中最复杂的组成,第一支BCPL compiler在IBM 7094电脑中完成。
 
身为早期编程语言的BCPL,如今已不再广泛使用,但它的影响却是深远的,BCPL是第一支使用括号语言,括号特征在C语言中随处可见。BCPL程序从一个主函数中开始,功能模块可以添加在各个函数中,函数支持嵌套和递归。
 
4、B语言于1969年前后由美国贝尔实验室的电脑科学家肯•汤普森(Ken Thompson)在丹尼斯•利奇(Dennis Ritchie)的支持下设计出来。
 
B语言是从BCPL系统中删减了汤姆森认为非必备的组件以便能运行在当时的小型计算机上而产生的。B语言还包括了汤姆森的一些个人偏好(主要在一些特定的程序中减少非空格字符的数量)。B语言只有一种数据类型,计算机字。大部分操作将其作为整数对待(例如进行+、-、*、/操作),但其余操作将其作为一个复引用的内存地址。B语言包括了一些库函数。
 
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏—Space Travel。他背着老板,找到了台空闲的机器—PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为—UNIX。
 
1970年,美国贝尔实验室的Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
 
1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
 
5、1972年美国贝尔实验室的D.M.Ritchie丹尼斯•利奇 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
 
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。
 
1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
 
1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩• 柯林汉(Brian Kernighan) 和 丹尼斯•里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》《C程序设计语言》。这本书被C语言开发者们称为"K&R",很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为K&R C。
 
6、1982年,成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。
 
1983年美国国家标准局 (American National Standards Institute,简称ANSI)成立了一个委员会。
 
1989年C语言标准被批准,被称为ANSI X3.159-1989 "Programming Language C",俗称ANSI C或C89标准。
 
1990年,国际标准化组织ISO(International Organization for Standards)接受了1989年的ANSI C为ISO C 的标准,命名为ISO/IEC 9899:1990,简称C90标准。不过习惯上仍然叫C89标准。
 
1994年,ISO修订了C语言的标准。
 
1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C继续在改进。
 
1999年ISO 9899:1999的发表。它通常被称为C99。C99被ANSI于2000年3月采用。
 
2011年12月8日,ISO正式发布了新的C语言的新标准C11,之前被称为C1X,官方名称为ISO/IEC 9899:2011。新的标准提高了对C++的兼容性,并增加了一些新的特性。

Java语言发展简史
JAVA 语言历史近二十年, 已发展成为人类计算机史上影响深远的编程语言. JAVA 语言是一门非常纯粹的面向对象编程语言, 它吸收了 C++ 语言的各种优点, 又摒弃了 C++ 里难以理解的多继承、指针等概念, 因此 JAVA 语言具有功能强大和简单易用两个特征.
Sun 公司在 1995年年初发布了 JAVA 语言, 同时放到了互联网上, 免费给大家使用. 甚至连源代码也不保密, 对所有人公开. (这就是所谓的开源) 之后吸引了大批的程序员使用JAVA语言开发出了各种小动画、小游戏等.Sun公司虽然推出了 JAVA , 但这只是一种语言, 如果想要开发复杂的应用程序, 必须要有一个强大的开发类库. 因此, Sun 在 1996年年初发布了 JDK 1.0 这个版本包括两部分: 运行环境(即 JRE) 和 开发环境(即JDK)  运行环境包括核心 API 、 集成 API 、 用户界面 API 、 发布技术 、 JAVA虚拟机(JVM) 5个部分. 开发环境包括编译 JAVA 程序的编译器 (即 javac 命令)
 
1995年5月23日,Java语言诞生;
1996年1月,第一个JDK-JDK1.0诞生;
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术;
1996年9月,约8.3万个网页应用了Java技术来制作;
1997年2月18日,JDK1.1发布;
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录;
1997年9月,JavaDeveloperConnection社区成员超过十万;
1998年2月,JDK1.1被下载超过2,000,000次;
1998年12月8日,Java 2企业平台J2EE发布;
2001年6月5日,Nokia宣布到2003年将出售1亿部支持Java的手机;
2001年9月24日,J2EE1.3发布; 
2002年2月26日,J2SE1.4发布,此后Java的计算能力有了大幅提升;
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0;
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”: 
J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME;
2009年12月,SUN公司发布Java EE 6;
2010年11月,由于甲骨文对Java社区的不友善,因此Apache扬言将退出JCP;
2011年7月28日,甲骨文发布Java SE 7;
2014年3月18日,甲骨文发表Java SE 8。
Java三个版本
J2SE:  JSE 指标准版一般用于用户学习JAVA语言的基础也是使用其他两个版本的基础主要用于编写C/S项目和提供标准的JAVA类库,是所有基于Java语言开发的基础,该版本主要用于开发桌面应用程序。
J2ME: JME 指移动版为小型移动器械搭建使用平台主要是用来为手机编程,制作手机相关软件的 三个版本一个是做C/S项目如QQ 一个是做网站如163 一个是做手机系统如大部分手机的小游戏 ,是针对移动设备,嵌入式系统的开发
J2EE:  JEE 指企业版依托互连网技术提供企业级平台应用说白了就是用来构建大型网站和B/S系统 ,作为一个企业版本,主要是给出一个开发企业级应用架构的解决方案,同时给出了在这个架构中相关组件以供开发人员使用,例如我们连接数据库所用的JDBC。
Java三类API
核心API: 基本API, JAVA核心类库.
可选API: Sun公司为JDK提供的扩充API, 这些API因平台的不同而不同.
特殊API: 用于满足特殊要求的API. 如用于JCA和JCE的第三方加密类库.

猜你喜欢

转载自www.cnblogs.com/wmhtxt/p/9905553.html