编程的历史
A. 编程语言发展史
VB编程语言历史=========
Visual Basic从1991年诞生以来,现在已经13年了。BASIC是微软的起家产品,微软当然不忘了这位功臣。随着每一次微软技术的浪潮,Visual Basic都会随之获得新生。可以预见,将来无论微软又发明了什么技术或平台,Visual Basic一定会首先以新的姿态登上去的。如果你想紧跟微软,永远在最新的技术上最快速地开发,你就应该选择Visual Basic。
1991-西雅图夜空的雷电
随着Windows 3.0的推出,越来越多的开发商对这个图形界面的操作系统产生了兴趣,大量的Windows应用程序开始涌现。但是,Windows程序的开发相对于传统的DOS有很大的不同,开发者必须将很多精力放在开发GUI上,这让很多希望学习Windows开发的人员却步。1991年,微软公司展示了一个叫 Thunder的产品,所有的开发者都惊呆了,它竟然可以用鼠标“画”出所需的用户界面,然后用简单的BASIc语言编写业务逻辑,就生成一个完整的应用程序。这种全新的“Visual”的开发就像雷电(Thunder)一样,给Windows开发人员开辟了新的天地。这个产品最终被定名为Visual Basic,采用事件驱动,Quick BASIC的语法和可视化的IDE。Visual Basic 1.0带来的最新的开发体验就是事件驱动,它不同于传统的过程式开发。同时,VBX控件让可视化组件的概念进入Visual Basic。Visual Basic 1.0是革命性的BASIC,它的诞生也是VB史上的一段佳话。
Visual Basic 1.0
1992-渐入佳境的Visual Basic
由于Windows 3.1的推出,Windows已经充分获得了用户的认可,Windows开发也进入一个新的时代。Visual Basic 1.0的功能过于简单,相对于Windows 3.1的强大功能没有发挥出来。所以,微软在1992年推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量,比如
Dim b As CommandButton
Dim c As Control
而且有了最原始的“继承”概念,对象型变量分为一般类型(Control和Form)和专有类型(CommandButton和Form1等),一般类型的变量可以引用专有类型的实例,甚至通过后期绑定访问专有类型的属性和方法。还可以通过TypeOf…Is运算符获取对象实例的运行时类型信息(这个功能就是当今C#的is运算符或Java的instanceof运算符)。除了对语言的改进和扩充,Visual Basic 2.0对VBX有了很好的支持,许多第三方控件涌现出来,极大地丰富了Visual Basic的功能。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能。
Visual Basic 2.0标准版
Visual Basic 2.0专业版
1993-数据库组件新添力量
Visual Basic 2.0推出没几个月,微软就发布了新版本的Visual Basic 3.0,可以看出VB这时候旺盛的生命力。乍一看,Visual Basic 3.0的界面没有太大的变化,但其实这个版本是非常及时的。它增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。最吸引人的地方是它对数据库的支持大大增强了,Grid控件和数据控件能够创建出色的数据窗口应用程序,而Jet引擎让Visual Basic能对最新的Access数据库快速地访问。Visual Basic 3.0还增加了许多新的金融函数。此外还增加了相当多的专业级控件,可以开发出相当水平的Windows应用程序。Visual Basic 3.0是98年以前中国最流行的Visual Basic版本,因为它开发出来的可执行文件非常小,通常能用一张软盘装下。不过,Visual Basic采用虚拟机运行P代码的做法也让很多开发者不满,他们认为这样程序运行的效率很低,这时候Visual Basic的竞争者Delphi也诞生了。
Visual Basic 3.0标准版
Visual Basic 3.0特别版
1995-第二次革命性变化,向COM进军。
从1993年到1995年年中,Visual Basic一直没有新的动静,焦急的开发者都想一窥这个神秘的新版本到底发生了什么变化。Visual Basic 4.0的BETA最后终于和大家见面了。这个版本包含了16位和32位两个版本,16位的版本就像是Visual Basic 3.0的升级版,而32位版则是一场新的革命。首先,人们发现VBX控件不见了,全部换成了OCX控件,这个OCX可能是指OLE Custom Controls,这个OLE已经不是传统的OLE了,用现在的话说,它就是COM控件。第二个最大变化是Visual Basic 4.0所用的语言换成了Visual Basic For Application,这就和Office 95所采用的宏语言统一起来,这个新语言有很多亮点:
1、? 加入了“类模块”。这是面向对象最重要的封装性的基础。
2、? 加入了属性过程,加上函数过程,子程序过程,VB已经有组件开发所需的封装性特征。
3、? 加入了Byte类型、Boolean类型和Object类型。这大大完善了VB的类型系统。
4、? For Each语句和Collection对象。For Each语句给遍历集合类型提供了极大的方便,现在可以在动态增长的Collection上使用For Each,而不用担心集合内容的总数或烦人的下标问题。
这个版本的Visual Basic还能够开发DLL工程,其实就是COM的DLL,可以将书写好的类用这种方式和其他语言共享。
总之,这个4.0的版本为Visual Basic成为一种COM语言奠定了基础。用Visual Basic 4.0开发基于COM的DLL比任何一种开发工具都方便。但是,Visual Basic 4.0的性能问题变得更加严重了,P-代码的组件成为Visual Basic 4.0严重的性能瓶颈,而且巨大的运行库也让用户感到不满。Visual Basic 4.0对以前版本的支持也不好,使用了大量VBX的项目很难移植到Visual Basic 4.0中。因此,Visual Basic 4.0在中国的普及程度非常低。
Visual Basic 4.0
1997-Visual Basic的丰收年
1997年,微软推出了Visual Basic 5.0,这个版本的重要性几乎和4.0一样高。COM(这时候叫ActiveX)已经相当成熟,Visual Basic 5.0当然对它提供了最强的支持。不过,国内还没有意识到COM的重要性前主要对这个版本另一个最大的亮点十分关注:本地代码编译器。Visual Basic 5.0终于在用户的呼声中加入了一个本地代码编译器,它可以让应用程序的效率大大提升。除了这个大家都知道的改进以外,Visual Basic 5.0对Visual Basic For Application语言有重大的完善和丰富:
5、? 事件。Visual Basic 5.0终于允许用户自己创建事件,而且这事件的语法相当强健和完善,这在一种不支持函数回调的语言中是很难得的。现在,VB拥有属性、方法和事件的完整封装性。
6、? 接口。这是VB实现多态性的基础。同时为编写COM组件提供了更多方便。
7、? 枚举。在Visual Basic 5.0中枚举作为Long整型的子类型出现,用枚举可以对常量进行完善的封装。
8、? 类模块的改进。通过类模块的属性可以指定类模块具有多种指定的行为,如私有构造函数等,可以通过这个功能创建符合Singleton和Monostate模式的设计。
9、? Debug.Assert。虽然这个断言系统有点鸡肋,但是总算是给调试带来了方便。
10、 Visual Basic 5.0支持创建自己的集合类。可以创建用于For Each语句的集合类型。
11、新的数据类型Decimal,可以精确地处理有效数位较多的计算。
Visual Basic 5.0的IDE支持“智能感知”,这是一项非常方便开发者的功能,可以不必记住很长的成员名称和关键字,只要按“.”,想要的东西统统弹出来。
Visual Basic 5.0还支持开发自己的ActiveX 控件、进程内的COM DLL组件、进程外的COM EXE组件以及在浏览器中运行的ActiveX文档。这极大丰富了Visual Basic的开发能力,在Internet开发上,Visual Basic 5.0也能有所建树。
Visual Basic 5.0学习版——我的第一份正版VB
1998-企业真正高效的源泉
Visual Basic 6.0作为Visual Studio 6.0的一员发布,证明微软正在改变Visual Basic的产品定位,他想让Visual Basic成为企业级快速开发的利器。Visual Basic 6.0在数据访问方面有了很大的改进,新的ADO组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。Visual Basic 借助COM/COM+强大的功能,可以开发具有N层结构的分布式应用程序。同时,Visual Basic还可以在IIS上开发性能超群的Web应用程序。Visual Basic 6.0在语言方面和IDE方面的改进都不大,但是许多新增的组件成为Visual Basic开发人员手中的利器,如File System Object等。新的字符串函数Split和Replace等也给Visual Basic的程序员带来很大方便。
总之Visual Basic 6.0已经是非常成熟稳定的开发系统,能让企业快速建立多层的系统以及Web应用程序,成为当前Windows上最流行的Visual Basic版本。
Visual Basic 6.0
2002-第三次革命性变化,向.NET进军
从1998年发布到2002年正式推出Visual Basic. NET简直吊足了开发者的胃口。从2000年就开始传言的具有继承、Try…Catch语句等新功能的全新VB7.0一直没有露面。直到2001 年,Visual Studio.NET的第一个BETA版问世的时候,所有人都呆了——这是Visual Basic吗?And语句变成了BitAnd,数组只能从0下标开始,而且连Dim语句的意义都变了,几乎所有的窗体控件都变了,Long变成了 Integer而Integer变成了Short,Variant不见了,Static不能用了……简直是翻天覆地,人们已经无暇关注这个版本有什么改进,转而担心我怎么才能接受这个本本了。其实Visual Basic. NET完全是为了.NET Framework这一全新的平台而设计的,Visual Basic. NET的设计者一开始没有掌握好新平台和旧语言的平衡。到了BETA2中,很多东西回归了6.0,如BitAnd又变回了And,数组的定义语句也变回了原有的意义,Static也回到了Visual Basic中。但是BETA1惊人的变化让所有的VB开发者怕了,他们觉得这种语言被改的千疮百孔,有些人干脆转去研究传说中的新语言C#。但是 Visual Basic. NET渡过几个BETA版本之后还是找到了正确的定位。Visual Basic. NET有对CLR最完善的支持,同时尽量保留着BASIC易懂的语法风格和易用性。这个版本新增加的功能已经数不清,最重要的几个是:
1、? 继承。至此,Visual Basic完成了向面向对象转变的道路。
2、? 共享成员。
3、? Try…Catch结构化异常处理。
4、? Delegate和Interface。
5、? 名称空间。
6、? 对自由线程的支持。
特别的是,Visual Basic. NET大大减少了Visual Basic语言的关键字,如GoSub、PSet等等。原先的Visual Basic有多达120个关键字,这给写程序带来了很大的不便,现在经过精简,Visual Basic脱下了这个沉重的包袱。
Visual Basic. NET现在是一门现代的、强壮的、面向对象的、简单的可视化开发语言。强大的语言功能吸引了很多开发者。历史是在不断重演的,Visual Basic. NET如今的处境和Visual Basic 4.0很相似,由于兼容性变差,人气也降低了。同时由于依附于.NET Framework,程序发布造成了一定的困难。现在国内使用Visual Basic. NET的人相对于Visual Basic 6.0来讲显得很少。但是凭借Visual Basic. NET强大的语言功能和MS的支持,Visual Basic. NET一定会显出它的光辉来。
2003-稳中求变的新版本
Visual Basic. NET 2003是一个相当稳重的版本,改变很少,但对小处有很多改进。首先Visual Basic 6.0升级向导做了很大改进,这给从老版本痛苦升级的人带来了更多一些的希望。其次在IDE方面,Visual Basic. NET 2003修正了许多错误,还让事件处理恢复了6.0的开发体验。语言方面只有两项改进:
1、? 在For、For Each语句中声明循环变量。
2、? 增加了数学移位运算符<<和>>。
在这个比较成熟稳定的新版本下,许多Visual Basic的爱好和开始重新了解Visual Basic. NET,社区里面也渐渐热闹起来。但是,有些使用C#的开发者坚持认为Visual Basic. NET是垃圾,尽管Visual Basic. NET拥有比C#更多的功能和更好的IDE。这说明不了解Visual Basic. NET成为它普及的最大障碍。
2005-完美主义的Visual Basic,能否再现辉煌?
为了让Visual Basic有最佳的开发体验,Visual Basic 2005的设计者绞尽了脑汁。这次Visual Basic 2005光语言上的改进就足以让Visual Basic的开发人员高兴一阵子。大家可以去看看我那篇介绍Visual Basic 2005新增功能的贴子。挑重要的列在下边:
1、? 泛型
2、? 运算符重载
3、? Partial Type
4、? 窗体的默认实例(让你用VB6的语法使用窗体)
5、? 语法的多种改进
6、? My关键字
现在用Visual Basic 2005只要一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息…… 用Visual Basic 2005完全可以称作享受开发。而泛型、运算符重载等功能又可以让Visual Basic的开发人员深入.NET Framework的全部功能,开发出最优秀的应用程序。
Visual Basic 2005预示着Visual Basic光明的前景,所有Visual Basic的爱好者和使用者都和我一起等待这个新版本吧。
C++编程语言历史========
C++是从C语言发展而来的,而C语言的历史可以追溯到1969年。 在1969年,美国贝尔实验室的Ken Thompson为DEC PDP-7计算机设计了一个操作系统软件,这就是最早的UNIX。接着,他又根据剑桥大学的Martin Richards设计的BCPL语言为UNIX设计了一种便于编写系统软件的语言,命名为B。B语言是一种无类型的语言,直接对机器字操作,这一点和后来的C语言有很大不同。作为系统软件编程语言的第一个应用,Ken Thompson使用B语言重写了其自身的解释程序。 1972—1973年间,同在贝尔实验室的Denis Ritchie改造了B语言,为其添加了数据类型的概念,并将原来的解释程序改写为可以在直接生成机器代码的编译程序,然后将其命名为C。1973 年,Ken Thompson小组在PDP-11机上用C重新改写了UNIX的内核。与此同时,C语言的编译程序也被移植到IBM 360/370、Honeywell 11以时VAX-11/780等多种计算机上,迅速成为应用最广泛的系统程序设计语言。然而,C语言也存在一些缺陷,例如类型检查机制相对较弱、缺少支持代码重用的语言结构等,造成用C语言开发大程序比较困难。为了克服C语言存在的缺点,贝乐实验室的Bjarne Stroustrup博士及其同事开始对C语言进行改进和扩充,将“类”的概念引入了C语言,构成了最早的C++语言(1983)。后来,Stroustrup和他的同事们又为C++引进了运算符重载、引用、虚函数等许多特性,并使之更加精炼,于1989后推出了AT&T C++ 2.0版。随后美国国家标准化协会ANSI(American National Standard Instiute)和国际标准化组织ISO(International Standards Organization)一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98-14882。各软件商推出的 C++编译器都支持该标准,并有不同程序的拓展。 C++支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C++均具有很大的优越性。同时,C++又是C语言的一个超集,这就使得许多C代码不经修改就可被C++编译通过。
JAVA编程语言历史=========
Java,是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun(太阳微电子,Sun Microsystems)公司的James Gosling等人于1990年代初开发。它最初被命名为Oak,作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近夭折之时,随着Internet的发展,Sun看到了 Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以"Java"的名称正式发布了。Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。
Java编程语言的风格十分接近C++语言。Java继承了C++语言面向对象技术的核心,舍弃了C++语言中的指针(以引用取代)、运算符重载、多重继承(以接口取代)等成分,增加了自动垃圾收集功能用于回收不再被引用的对象所占据的内存空间。在J2SE1.5版本中Java又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了Java程序的运行效率。
Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于Java语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。
目前Java提供以下三个版本:
J2ME(Java 2 Platform, Micro Edition):微型版的Java平台
J2SE(Java 2 Platform, Standard Edition):标准版的Java平台
J2EE(Java 2 Platform, Enterprise Edition):企业版的Java平台
Java的历史:
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日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5发布,是Java语言的发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0
B. 编程语言是谁发明的
多年前,美国军方要给一种计算机语言取个名字,大家提了许多动听的名字都觉的不太中意,后来有人提议,将这种计算机语言命名为:Ada。没有人提出异议。为什么大家都同意用这个名字呢?这还得从100多年前说起。Ada是一名充满幻想的女孩1815年12月10日,英国。一个女孩降生了,她的母亲,一个有着杰出数学天赋的女人,人称“平行四边形公主”;父亲,一个狂热的充满幻想的诗人
--拜伦。可是女孩从生下来就从没见过父亲。这位狂热的、浪漫的诗人结婚不久便离开了英国,再也没有回来。母亲给她起了个动听的名字:阿达(Ada)。那
位诗人尽管离开了英国,当听说自己有了一个女儿时非常的高兴,可也非常的懊悔,但他始终没有回去看女儿一眼,只能用诗来表达自己对女儿的思念和歉疚,他的
一首诗的名字就叫《阿达》。狂热的诗人36岁死于希腊,临死前唯一牵挂的就是阿达。而此时的阿达,跟随着母亲生活,阿达不仅继承了母亲的数学天赋,也秉承了父亲的性格,小小年纪也充满幻想,幻想成为一个大科学家、大诗人。母亲怕她走父亲的老路,竭力想改变她对诗歌的热爱,但无能为力,阿达曾对母亲说:“没有诗,要数学干什么?”当时的英国,科学风气盛行,包括许多妇女都在杂志上发表文章探讨数学等问题。阿达17岁那年,母亲请了着名的数学家摩根做她的老师,摩根就是现代计算
机数学基础布尔代数的创始人之一。在他的影响下,阿达的数学天赋得到了充分的展现。同时阿达还被介绍到当时着名的翻译家——为剑桥大学工作的玛丽·索菲利
那里学习。玛丽由衷地喜欢这个聪明而又刻苦,且充满幻想的女孩,也非常地支持并鼓励她在数学方面发展。此时的阿达对机械、建筑也充满兴趣,畅游在科技王
国,就像少女在花园中徜徉,乐此不疲,流连忘返。她还同当时的一些着名科学家保持密切的联系,如法拉第等。结识巴贝奇1834年11月,阿达在一次宴会上遇到了一位对其一生产生重要影响的人——查尔斯·巴贝奇。此时的巴贝奇正到处游说他的计算机设想。当时的人们很少
有人理会他,以为他是在“痴人说梦”。同样,他也将自己的设想全盘托出,讲给阿达听。此时的阿达只有18岁,但她听完他的设想并看了他的文稿后,彻底地领
会了他的设想,并深深地为之陶醉。凭着她深厚的科学功底和丰富的想象力,她认为这是一个伟大的设想,世界将因之而改变。面对今天的现实,我们不能不为阿达的洞察力所折服,她的这一预言可是在一个半世纪以前提出的啊!参与研制计算机共同的追求,使两人成了忘年交,阿达的母亲曾试图阻止阿达与巴贝奇的交往,认为巴贝奇不过是个江湖骗子,不会给阿达好影响。这点阻力对于秉承父亲性格的阿达,算不了什么,她完全投入到了计算机的研制中去了,负责为巴贝奇设想中的计算机编写软件。1841年,巴贝奇在意大利都灵向人们详细地介绍他的设想,希望能引起大家的重视,但无人喝彩。他用法语出版的论文也不受人欢迎,但阿达执意要将其翻
译成英文。翻译结束后阿达将文稿给巴贝奇看,巴贝奇发现:阿达不仅在论文中加入她特有的想象,而且补充了许多阿达独到的见解。阿达特别强调存储程序和数据
的重要性,而这与今天的计算机技术不谋而合,并且拟订了一份设计图,这份设计图被公认为世界上第一个计算机程序。阿达在文中对计算机应用前景的展望,连巴
贝奇自己都从来没有想到过。如:阿达认为,计算机应该发展成一个可用符号来表示任何事物的装置,这不正是今天的编程语言吗?她还预见到计算机可以用在纺织
机械上,用卡片存储复杂的花样、可以用来绘图、演奏音乐。这些预言表明阿达是现代人工智能技术的拓荒者。阿达对论文的修改,使巴贝奇深感惊奇和鼓舞,他对别人称赞说:“阿达是个充满想象力和洞察力的女孩”,“她是个数字女神”。她将诗歌的激情融入了论文之中。 经过阿达翻译后的文稿其内容增加到原来的三倍,论文实际上成了两人合作的产物,但谦逊的阿达在署名的时候,只将自己的名字简单地署为:A.A.L。在后来的一系列论文中,阿达在计算机软件领域做出了许多开创性的贡献:如变量、递归、程序算法的提出等。短暂的一生阿达后来与威廉伯爵结婚,婚后生有三个孩子,但为了研制计算机,她将孩子们都放到母亲那里扶养,这对于一个女性,在当时是不被人理解的,好在丈夫非常
支持她的研究工作,这使她深感欣慰。此时的巴贝奇已是一贫如洗,阿达也付出了许多。长期的研究耗费了大量的心血,身体状况也一天不如一天,疾病时时纠缠着
她,但为了那个美丽的幻想成真,她夜以继日地工作。她的座右铭是:工作是我的报酬。1852年,阿达因癌症去世,同她的父亲一样,年仅36岁,没有等到计算机的诞生。如果她再多活一年,就会看到在瑞典,由乔治和爱德华根据巴贝奇的方案制造出的一台差分机,这不能不说是人类的一个遗憾:第一位软件工程师,却没有看到自己的设想结出的果实。尽管限于当时的制造条件,巴贝奇最终也没有造成理想中的计算机,但他们超前100多年的拓荒,对后来计算机技术的诞生和发展同样产生了深远的影响。当
我们津津乐道ENIAC——第一台数字电子计算机的时候,也不应该忘记人类这一智慧的火花,在这之前的100多年,已经由巴贝奇和阿达点燃了。阿达、巴贝奇两人对计算机事业的贡献就好像火对于人类。他们是钻燧取火的人,是盗得火种的普罗米修斯。让我们记住巴贝奇,也记住这位杰出的女性———阿达(Ada)。用她的名字给一种计算机语言命名,只能寄托我们对她的纪念和钦佩,却远远不能表达出她为计算机技术作出的重要贡献。
___________________________________________
这个只能抄一下了。
C. 编程语言的历史
两个都是英文版的。
编程语言和软件历史年表大全
Year - Languages, Operating Systems, Major Programs, Etc.
1945 EDVAC utilizes stored program concept
1945 Plankalkul (Konrad Zuse)
1949 Short Code (for BINAC) (John Mauchly)
1950 Intermediate Programming Language (Arthur W. Burks)
1951 Klamemerausdrucke (algebraic language and compilers)
1951 Formules (complete compiler) (Heinz Rutishauser)
1951 Find (for the Whirlwind) (Jack Gilmore)
1952 Autocode compiler (Alick E. Glennie)
1952 Short Code (for UNIVAC 1) (W.F. Schmidt, A.B. Tonik, J.R. Logan)
1952 Sort-Merge Generator (for UNIVAC 1) (Betty Holberton)
1952c COMPOOL (for SAGE) (MIT)
1952 Punchy (for TX-O) (Jack Gilmore)
1953 A-2 Compiler (for UNIVAC) (Grace Hopper)
1953 Algebraic interpreter (for Whirlwind, MIT) (J.H. Laning, N. Zierler)
1953 Speedcoding (for IBM 701) (John Backus)
1954 Operating System (for IBM 701, General Motors Research Laboratory)
1954 Autocode (for Manchester Mark 1) (R.A. Booker)
1954 PiPi-2 Prgrmg Program (compiler, USSR) (E.Z. Liumbimskii, S.S. Kamynin)
1954c Autocoder assembly language (for IBM 705)
1955 PiPi Programming Program (for BESM) (USSR)
1955 BACAIC (for IBM 701) (Mandalay Grems, R.E. Porter, Boeing Airplane Co.)
1955 MATH-MATIC mathematical programming language (for UNIVAC) (C. Katz)
1955 Kompiler 2 (for IBM 701) (A. Kenton Elsworth, Livermore Laboratory)
1956 Operating Sys. (for IBM 704) (General Motors; North American Aviation)
1956 ADES (U.S. Naval Observatory) (E.K.Blum)
1956 APT machine tool control (MIT) (Douglas Ross)
1956 Logic Theorist AI program (A. Newell & H. Simon, Carnegie Institute)
1956 IT (Internal Translator) (for IBM 650) (A. Perlis & J.W. Smith)
1956 Mark I report generator (for IBM 702) (General Electric-Hanford)
1956 FORTRAN (Formula Translation) (John Backus, IBM)
1957 Mark II Report generator (for IBM 702) (General Electric-Hanford)
1957 IPL-V (Information Processing Language V)
1957 Fortransit programming language
1957 COMIT string processing language (Victor Yngve, MIT)
1957 Scope Writer (for TX-2) (Jack Gilmore)
1957 Lincoln Writer (for TX-2) (Jack Gilmore)
1958 APT (Automatically Programmed Tool)
1958 FLOW-MATIC (for UNIVAC, Remington-Rand) (Grace Hopper)
1958c SOAP assembler (for IBM 650)
1958 IR (Information Retrieval) database management system (for IBM 704)
1958 LISP (List Processing language) (John McCarthy, MIT)
1958 AIMACO data processing language
1958 IPL V list processing language
1959 DYNAMO III
1959 TUFF/TUG (for IBM 704)
1959 9PAC file handling (for IBM 709)
1959 FACT business data processing language
1959 SURGE (for IBM 704) (Fletcher Jones)
1959 SAGE operating system (for IBM AN/FSQ7) (System Development Corp.)
1959c SAP assembler (for IBM 704)
1959c ASCI-Matic (Jack Minker)
1959 COBOL (December release)
1960 Atlas operating system for Atlas Computer)
(Manchester Univ. & Ferranti)
1960 ALGOL 60 (Algorithmic Language)
1960 COBOL (Common Business Oriented Language)
1960 JOVIAL (Jules Own Version of Int. Algebraic Language) (Jules Schwartz)
1960 MAD (Michigan Algorithm Decoder)
1960 NELIAC (Navy Electronics Laboratory International Algol Compiler)
1960 TRAC string processing language
1960 SCEPTRE
1960 IOCS operating system (for IBM 709/7090)
1960 FMS operating system (for IBM 709) (North American Aviation)
1961 COBOL revised and reissued
1961 SOS operating system (for IBM 709) (SHARE and IBM)
1961 GPSS (General Purpose Systems Simulator)
1961 SAC/Aids Formatted File System (for SAC 438L system) (SAC)
1961 BASE-BALL natural language system (B.V. Green)
1961 QUERY database (T. E. Cheatham, S. Warshall)
1961 RPG (Report Program Generator) (for IBM 1401)
1961 MADCAP scientific programming language
1961 ALGY formula manipulation language
1961 GECOM business data processing language
1961 QUICKTRAN on-line programming language
1961 Expensive Typewriter (IBM 360) (Stephen Piner)
1961 COBOL 61 Extended
1962 CTSS operating system (for IBM 7090 & IBM 7094) (Dr.F. Corbato, MIT)
1962 Gen. Info. & Retrieval System (GIRLS) for IBM 7090 (J.A. Postley, AIS)
1962 EXEC 1 operating system (for Univac 1107) (Computer Sciences Corp.)
1962 APL (A Programming Language) (Kenneth Iverson)
1962 IBSYS operating system (IBM 7090)
1962 Advanced Data Management System (ADAM) (for IBM 7030) (MITRE)
1962 COLINGO database (for IBM 1401)
1962 FORMAC formula manipulation
1962 SNOBOL (String Oriented Symbolic Language)
1963 Master Control Program operating system (for Burroughs B5000)
1963 COGO (Coordinate Geometry)
1963 Information Processing System (IPS) (for CDC 1604) (NAVCOSSACT)
1963 JOSS (Johnniac Open Shop System) (J.Cliff Shaw, Rand Corporation)
1963 CORC scientific programming language
1963 OMNIT AB scientific programming language
1963 Ambit
1964 Integrated Data Store (I-D-S) (Charles Bachman, General Electric)
1964 OS/360 operating system (for IBM 360)
1964 BASIC (Beginners All-Purpose Symbolic Instruction Code)
(John Kemeny, Thomas Kurtz, Dartmouth College)
1964 FORMAC (Formula Manipulation Compiler) for non-numeric mathematics
(Jean Sammet)
1964 PAT on-line programming language
1964 PL/1 (developed by IBM and SHARE)
1964 Altran
1965 Generalized Update Access Method (GUAM) (IBM 7010)
(developed by North American Space Division)
1965 Remote Access Terminal System (for IBM 7010)
(developed by IBM, and Rockwell International)
1965 Generalized Information System (GIS) (for IBM System/360)
1965 DENDRAL (Edward Fiegenbaum, Joshua Lederberg (Stanford University)
1965 C-10 database management system (IBM 1410) (developed by MITRE)
1965 COGENT report generator (for IBM 709)
1965 CPS on-line programming language
1965 RUSH on-line programming language
1965 Amtran on-line programming language
1965 FLAP formula manipulation programming language
1965 CLP list processing language
1965c MULTICS interactive operating system (for GE/Honeywell 645)
(developed by GE, Bell Labs & MIT)
1965 TRAC
1965 SNOBOL 3
1966 SIMULA I (Kristen Nygaard, Ole-Lohan Dahl) (First Object Oriented Language)
1966 TOSS operating system (for IBM System/360) (developed by RCA)
1966 Dialog on-line programming language
1966 MAP on-line programming language
1966 NAPSS scientific programming language
1966 Euler scientific programming language
1966 Coursewriter II
1966 OMNITAB II
1966 ECAP II (Electronic Circuit Analysis Program II)
1966 MPSX (Mathematical Programming System Extended)
1967 RAMIS non-proceral programming language (Mathematical)
1967 MANAGE database management system (for XDS 940 computer)
(developed by Scientific Data Systems)
1967 AS-IST database management system (for IBM System/360)
(developed by Applications Software)
1967 LUCID database management system (for AN/FSQ32)
(developed by System Development)
1967 ICES (Integrated Civil Engineering System)
1967 CSSL (Continuous Systems Simulation Language)
1967 Simula 67 (Simulation Language 1967)
1967 CPUL programming language
1967 POSE scientific programming language
1967 MAC-30 programming language
1967 DIAGMAG scientific programming language
1967 REDUCE formula manipulation language
1967 SPRINT list processing language
1967 LOLITA list processing language
1967 EOL-3 string processing language
1967 LEAP multipurpose programming language
1967 SNOBOL 4
1968 ALGOL 68 (Algorithmic Language)
1968 ATLAS (Abbreviated Test Language for "All" Systems)
1968 CSMP (Continuous System Modeling Program)
1968 Speakeasy
1968 OS/MFT operating system (for IBM 360 computers)
1968 TSS operating system (for IBM 360/370)
1968 MCP operating system (for Burroughs for B2500 and B3500)
1968 PAL programming language
1968 Proteus programming language
1968 GPL general purpose programming language
1968 TPS
1968 Salem
1968 Ariel
1968 Bruin
1968 TLC
1968 Termac
1968 Active Language 1
1968 Symbal
1968 Champ
1969 MUMPS (Massachusetts General Hospital General Utility
Multi-Programming System)
1969 PILOT
1969 CP-67/CMS operating system (for IBM 360 computer)
1969 OS/MVT operating system (for IBM 360 computer)
1969 Data Manager-1 (developed by Auerbach)
1969 UNIX multi-user, multitasking operating system development begun at Bell Labs
1969 Cobol Data Management System (CDMS) (for IBM 360)
(developed by Defense Intelligence Agency)
1969 Information Management System (IMS) hierarchical database management
system (developed by IBM)
1969 TSOS operating system (for Spectra 70/46) (developed by RCA)
1969 Time Shared Data Management System (TSDMS) (for IBM 360)
1969 Remote File Management System (for CDC 6000)
(developed at University of Texas)
1969 McG360 programming language
1969 DML programming language
1969 REL programming language
1969 PLANNER programming language
1969 REF-ARF programming language
1969 IITRAN multipurpose programming language
1969 APAREL multipurpose programming language
1969 NUCLEOL string processing language
1969 LEAF list processing language
1969 IAM formula manipulation language
1969 PPL on-line programming language
1969 OSCAR on-line programming language
1969 TRANQUIL scientific programming language
1969 SPEAKEASY scientific programming language
1969 STIL scientific programming language
1969 Music V (Max Mathews)
1969 Scratchpad
1970 BLISS (Basic Language for Implementation of System Software)
1970 SC-1 database management system (for IBM 360)
(developed by Western Electric)
1970 DMS data management system (for Sigma 5,7,9 computers)
(developed by Xerox Data Systems)
1970 S2000 data management system (for CDC 6000)(developed by SRI Systems)
1970 AIDS scientific programming language
1970 IIMP scientific programming language
1970 POEL scientific programming language
1970 LPL list processing language
1970 BALM list processing language
1970 Gedanken programming language
1970c Macsyma programming language (Joel Moses, MIT)
1970 Vulcan
1970 PDEL
1970 Pascal (Niklaus Wirth)
1971 VMOS operating system (for Spectra computers) (developed by RCA)
1971 ETC programming language
1971 TUTOR
1971 ISPL (Instruction Set Processor Language)
1971 FORMAC formula manipulation language
1971 HAL/S A programming language used aboard the Space Shuttle Columbia
1972 SMALLTALK object-oriented language (Alan Kay; Xerox)
1972 PL/M high-level language for microprocessor
1972 VS/9 operating system (for UNIVAC Series 90)
1972 Development of C language (Dennis Ritchie)
1973 BS2000 operating system (for Siemens 7500)
1973 VM 1370 operating system (for IBM 370 series)
1973 OS/VS operating system (for IBM 370 series)
1973 Pholas data management system (for Philips P1000)
1973 PDS/MaGEN (Problem Descriptor System)
1974 PL/M
1975 SPSS (Statistical Programs for the Social Sciences)
1975 OS/MVS operating system (for IBM 370 series)
1975 UNIX licensed by Western Electric for academic and commercial sectors
1975 ADA programming language developed for U.S. Dept. of Defense
1975 MDQS (Management Data Query System) developed by Honeywell
1976 Mola multiprocessing language (Niklaus Wirth)
1976 SMALLTALK 76 (Alan Kay, Adele Goldberg, Daniel H. H. Ingalis; Xerox PARC)
1977 CP/M (Control Program for Microprocessors) (Gary Kildall)
1979 VisiCalc electronic spreadsheet software for microcomputers
1979 X-CON (aka RI) expert system (Carnegie-Mellon University)
(used at Digital Equipment Corporation)
1980 INTELLECT natural language query system
(Artificial Intelligence Corporation)
1980 CPF operating system (for IBM System/38 minicomputer)
1980 C++ (Bjarne Stroustrup, Bell Labs)
1981 MS/DOS (Microsoft Disk Operating System)
developed by Microsoft Corporation) (IBM version called PC/DOS)
1983 KEE (expert systems development tool) IntelliCorp.
198? Objective C (Brad Cox; Stepstone Corporation)
1988 Windows 386 version 2.0 Released by Microsoft Corporation
1990 (April) Windows 3.0 released by Microsoft Corporation
1991 Windows NT Server version 3.1 released by Microsoft Corporation
1994 Windows NT Server version 3.5 released by Microsoft Corporation
1995 Windows 95 (microcomputer operating system and interface, Microsoft Corporation)
1995 JAVA (James Gosling, Sun Microsystems)
1996 Windows NT Server version 4.0 released by Microsoft Corporation
1996 "Inferno" under development by Dennis Ritchie and others
1996 (March) Microsoft’s Active X is released
1996 (October) Sun Microsystems SunSoft division releases JavaBeans
1996 Symantec’s Visual Cafe 1.0 tool (supports JavaBeans model)
1996 Delphi announces JBuilder (formerly code-named Latte)
1996 IBM’s Visual Age (supports JavaBean)
1996 Powersoft announces Jato (originally code-named Starbuck) (supports JavaBeans)
1996 Oracle Corporation announces Sedona, a development tools technology
1997 Microsoft Windows NT 5.0
编程语言历史
《BYTE》:A Brief History of Programming Languages
We’ve come a long way from computers programmed with wires and punch cards. Maybe not as far as some would like, though. Here are the innovations in programming.
ca. 1946
Konrad Zuse , a German engineer working alone while hiding out in the Bavarian Alps, develops Plankalkul. He applies the language to, among other things, chess.
--------------------------------------------------------------------------------
1949
Short Code , the first computer language actually used on an electronic computing device, appears. It is, however, a "hand-compiled" language.
--------------------------------------------------------------------------------
1951
Grace Hopper , working for Remington Rand, begins design work on the first widely known compiler, named A-0. When the language is released by Rand in 1957, it is called MATH-MATIC.
--------------------------------------------------------------------------------
1952
Alick E. Glennie , in his spare time at the University of Manchester, devises a programming system called AUTOCODE, a rudimentary compiler.
--------------------------------------------------------------------------------
1957
FORTRAN --mathematical FORmula TRANslating system--appears. Heading the team is John Backus, who goes on to contribute to the development of ALGOL and the well-known syntax-specification system known as BNF.
--------------------------------------------------------------------------------
1958
FORTRAN II appears, able to handle subroutines and links to assembly language. John McCarthy at M.I.T. begins work on LISP--LISt Processing.
The original specification for ALGOL appears. The specific ation does not describe how data will be input or output; that is left to the indivial implementations.
--------------------------------------------------------------------------------
1959
LISP 1.5 appears. COBOL is created by the Conference on Data Systems and Languages (CODASYL).
--------------------------------------------------------------------------------
1960
ALGOL 60 , the first block-structured language, appears. This is the root of the family tree that will ultimately proce the likes of Pascal. ALGOL goes on to become the most popular language in Europe in the mid- to late-1960s.
Sometime in the early 1960s , Kenneth Iverson begins work on the language that will become APL--A Programming Language. It uses a specialized character set that, for proper use, requires APL-compatible I/O devices.
--------------------------------------------------------------------------------
1962
APL is documented in Iverson’s book, A Pro gramming Language .
FORTRAN IV appears.
Work begins on the sure-fire winner of the "clever acronym" award, SNOBOL--StriNg-Oriented symBOlic Language. It will spawn other clever acronyms: FASBOL, a SNOBOL compiler (in 1971), and SPITBOL--SPeedy ImplemenTation of snoBOL--also in 1971.
--------------------------------------------------------------------------------
1963
ALGOL 60 is revised.
Work begins on PL/1.
--------------------------------------------------------------------------------
1964
APL\360 is implemented.
At Dartmouth University , professors John G. Kemeny and Thomas E. Kurtz invent BASIC. The first implementation is a compiler. The first BASIC program runs at about 4:00 a.m. on May 1, 1964.
PL/1 is released.
-----------------------------------------------------------------------------
1965
SNOBOL3 appears.
--------------------------------------------------------------------------------
1966
FORTRAN 66 appears.
LISP 2 appears.
Work begins on LOGO at Bolt, Beranek, & Newman. The team is headed by Wally Fuerzeig and includes Seymour Papert. LOGO is best known for its "turtle graphics."
--------------------------------------------------------------------------------
1967
SNOBOL4 , a much-enhanced SNOBOL, appears.
--------------------------------------------------------------------------------
1968
ALGOL 68 , a monster compared to ALGOL 60, appears. Some members of the specifications committee--including C.A.R. Hoare and Niklaus Wirth--protest its approval. ALGOL 68 proves difficult to implement.
ALTRAN , a FORTRAN variant, appears.
COBOL is officially defined by ANSI.
Niklaus Wirth begins work on Pascal.
--------------------------------------------------------------------------------
1969
500 people attend an APL conference at IBM’s headquarters in Armonk, New York. The demands for APL’s distribution are so great that the event is later referred to as "The March on Armonk."
--------------------------------------------------------------------------------
1970
Sometime in the early 1970s , Charles Moore writes the first significant programs in his new language, Forth.
Work on Prolog begins about this time.
Also sometime in the early 1970s , work on Smalltalk begins at Xerox PARC, led by Alan Kay. Early versions will include Smalltalk-72, Smalltalk-74, and Smalltalk-76.
An implementation of Pascal appears on a CDC 6000-series computer.
Icon , a descendant of SNOBOL4, appears.
--------------------------------------------------------------------------------
1972
The manuscript for Konrad Zuse’s Plankalkul (see 1946) is finally published.
Denni s Ritchie proces C. The definitive reference manual for it will not appear until 1974.
The first implementation of Prolog -- by Alain Colmerauer and Phillip Roussel -- appears.
--------------------------------------------------------------------------------
1974
Another ANSI specification for COBOL appears.
--------------------------------------------------------------------------------
1975
D. C语言在编程语言发展历史中处于什么地位,对编程语言的发展产生了什么影响,对
编程语言的发展历程可以简单划分为以下几个阶段 :
机器语言——>汇编语言——>高级计算机语言
1、机器语言:最初的计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。由于这种语言是直接对计算机硬件进行操作,所以在特定型号的计算机上面,运算效率也是很高的,机器语言的出
现对于未来的计算机语言发展起到了很好的推动作用,所以机器语言也是第一代计算机语言。
2、汇编语言:汇编语言是在机器语言的基础上诞生的一门语言,用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串。汇编语言同样也是直接对硬件进行操作,对于计算机硬件的功能和特长的发挥已有了很大进步,它精炼而质量高,所以至今仍是一种常用的程序开发语言。
3、高级计算机语言:在与计算机的不断交流中,人们对计算机程序的移植性需求不断提高,此时急需要一种不依赖于特定型号的计算机的语言,用这种语言编写的程序能在在各种平台都正常运行。
C语言是一种高级计算机语言,它既有高级语言的特点,又具有汇编语言的特点。它可以用来编写系统软件,也可以用来编写应用软件。C语言语法中对操作符的大量灵活的使用,极大的影响了后来的一批高级程序语言,是其他高级语言的基础。
请采纳,谢谢
E. c语言的发展史
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。
C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的。目前,C语言编译器普遍存在于各种不同的操作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言的设计影响了许多后来的编程语言,例如C++、Objective-C、Java、C#等。
后来于1980年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局(American National Standard Institution)为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。1980年代至今的有关程序开发工具,一般都支持符合ANSI C的语法。
C语言是一个程序语言,设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言也很适合搭配汇编语言来使用。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
早期发展
C语言最早是由丹尼斯·里奇为了在PDP-11电脑上运行的UNIX系统所设计出来的编程语言,第一次发展在1969年到1973年之间。之所以被称为“C”是因为C语言的很多特性是由一种更早的被称为B语言的编程语言中发展而来。早期操作系统的核心大多由汇编语言组成,随着C语言的发展,C语言已经可以用来编写操作系统的核心。1973年,Unix操作系统的核心正式用C语言改写,这是C语言第一次应用在操作系统的核心编写上。
K&R C
1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程序员称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色:
结构(struct)类型
长整数(long int)类型
无符号整数(unsigned int)类型
把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道用户要处理i = -10还是i =- 10,使得处理上产生混淆。
即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最低标准要求,许多老旧的编译仍然运行K&R C的标准。
ANSI C 和 ISO C
1989年,C语言被 ANSI 标准化(ANSI X3.159-1989)。标准化的一个目的是扩展K&R C。这个标准包括了一些新特性。在K&R出版后,一些新特性被非官方地加到C语言中。
void 函数
函数返回 struct 或 union 类型
void * 数据类型
在ANSI标准化自己的过程中,一些新的特性被加了进去。ANSI也规定了一套标准函数库。ANSI ISO(国际标准化组织)成立 ISO/IEC JTC1/SC22/WG14 工作组,来规定国际标准的C语言。通过对ANSI标准的少量修改,最终通过了 ISO 9899:1990。随后,ISO标准被 ANSI 采纳。
传统C语言到ANSI/ISO标准C语言的改进包括:
增加了真正的标准库
新的预处理命令与特性
函数原型允许在函数申明中指定参数类型
一些新的关键字,包括 const、volatile 与 signed
宽字符、宽字符串与字节多字符
对约定规则、声明和类型检查的许多小改动与澄清
WG14工作小组之后又于1995年,对1985年颁布的标准做了两处技术修订(缺陷修复)和一个补充(扩展)。下面是 1995 年做出的所有修改:
3 个新的标准库头文件 iso646.h、wctype.h 和 wchar.h
几个新的记号与预定义宏,用于对国际化提供更好的支持
printf/sprintf 函数一系列新的格式代码
大量的函数和一些类型与常量,用于多字节字符和宽字节字符
C99在ANSI的标准确立后,C语言的规范在一段时间内没有大的变动,然而C++在自己的标准化创建过程中继续发展壮大。《标准修正案一》在1995年为C语言创建了一个新标准,但是只修正了一些C89标准中的细节和增加更多更广的国际字符集支持。不过,这个标准引出了1999年ISO 9899:1999的发表。它通常被称为C99。C99被ANSI于2000年3月采用。
在C99中包括的特性有:
增加了对编译器的限制,比如源程序每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节(extern 要求支持到 31)。
增强了预处理功能。例如:
宏支持取可变参数 #define Macro(...) __VA_ARGS__
使用宏的时候,允许省略参数,被省略的参数会被扩展成空串。
支持 // 开头的单行注释(这个特性实际上在C89的很多编译器上已经被支持了)
增加了新关键字 restrict, inline, _Complex, _Imaginary, _Bool
支持 long long, long double _Complex, float _Complex 等类型
支持不定长的数组,即数组长度可以在运行时决定,比如利用变量作为数组长度。声明时使用 int a[var] 的形式。不过考虑到效率和实现,不定长数组不能用在全局,或 struct 与 union 里。
变量声明不必放在语句块的开头,for 语句提倡写成 for(int i=0;i<100;++i) 的形式,即i 只在 for 语句块内部有效。
允许采用(type_name){xx,xx,xx} 类似于 C++ 的构造函数的形式构造匿名的结构体。
初始化结构的时候允许对特定的元素赋值,形式为:
struct {int a[3],b;} foo[] = { [0].a = {1}, [1].a = 2 };
struct {int a, b, c, d;} foo = { .a = 1, .c = 3, 4, .b = 5} // 3,4 是对 .c,.d 赋值的
格式化字符串中,利用 \u 支持 unicode 的字符。
支持 16 进制的浮点数的描述。
printf scanf 的格式化串增加了对 long long int 类型的支持。
浮点数的内部数据描述支持了新标准,可以使用 #pragma 编译器指令指定。
除了已有的 __line__ __file__ 以外,增加了 __func__ 得到当前的函数名。
允许编译器化简非常数的表达式。
修改了 / % 处理负数时的定义,这样可以给出明确的结果,例如在C89中-22 / 7 = -3, -22 % 7 = -1 ,也可以-22 / 7= -4, -22 % 7 = 6。 而C99中明确为 -22 / 7 = -3, -22 % 7 = -1,只有一种结果。
取消了函数返回类型默认为 int 的规定。
允许 struct 定义的最后一个数组不指定其长度,写做 [] 。
const const int i 将被当作 const int i 处理。
增加和修改了一些标准头文件,比如定义 bool 的 <stdbool.h> ,定义一些标准长度的 int 的 <inttypes.h> ,定义复数的 <complex.h> ,定义宽字符的 <wctype.h> ,类似于泛型的数学函数 <tgmath.h>, 浮点数相关的 <fenv.h>。 在<stdarg.h> 增加了 va_ 用于复制 ... 的参数。<time.h> 里增加了 struct tmx ,对 struct tm 做了扩展。
输入输出对宽字符以及长整数等做了相应的支持。
F. 简述计算机程序设计语言的发展历程。
在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。
之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言并对新手来说太难学;还有,不同程序之间的运行成本各不相同。
有许多用于特殊用途的语言,只在特殊情况下使用。例如,PHP专门用来显示网页;Perl更适合文本处理;C语言被广泛用于操作系统和编译器的开发。
高级程序设计语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立。
(6)编程的历史扩展阅读:
如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就称为编译。
因此,一个编译器是一个将可阅读的程序文本作为输入的数据,然后输出可执行文件。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。
如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作解译。经解译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。
G. 编程语言谁发明的
那就语音的话 应该是那些搞计算机的人 发明的那个是C语言是最早的编程语言吧
H. 计算机编程语言的发展过程
简单一点可以是:机器语言-汇编语言-高级语言……