= 计算机软件的历史 =
定义:
软件是由计算机程序和程序设计的概念发展演化而来的,是程序和程序设计发展到规模化和商品化后所逐渐形成的概念,软件是程序以及程序实现和维护程序时所必须的文档的总称。
== 1、第一位程序员 ==
19世纪初在法国人约瑟夫雅各Joseph Marie Jaquard设计的织布机里已经具有了初步的程序设计的思想,他设计的织机能够通过读取穿孔卡上的信息完成预先确定的任务可以用于复杂图案的编织,早期利用计算机器解决问题的一般过程是:
*1针对特定的问题制造解决该问题的机器;
*2设计所需的指令并把完成该指令的代码序列传送到卡片或机械辅助部件上;
*3使计算机器运转执行预定的操作。
英国著名诗人拜伦Byron的女儿数学家爱达奥古斯塔拉夫拉斯伯爵夫人Ada Augusta Lovelace,在帮助巴贝奇研究分析机时指出分析机可以像织布机一样进行编程,并发现进行程序设计和编程的基本要素,被认为是有史以来的第一位程序员,而著名的计算机语言Ada就是以她的名字命名的。
== 2、布尔逻辑与程序设计 ==
在计算机的发展史上二值逻辑和布尔代数的使用是一个重要的突破,其理论基础是由英国数学家布尔奠定的。1847年布尔在逻辑的数学分析The Mathematical Analysis of Logic中分析了数学和逻辑之间的关系并阐述了逻辑归于数学的思想,这在数学发展史上是一个了不起的成就,也是思维的一大进步,并为现代计算机提供了重要的理论准备。遗憾的是,布尔的理论直到100年之后才被用于计算,在此期间程序设计随硬件的发展其形式也不断发展。
在基于继电器的计算机器时代,所谓“程序设计”实际上就是设置继电器开关以及根据要求使用电线把所需的逻辑单元相连重新设计,程序就意味着重新连线,所以通常的情况是“设置程序”花了许多天时间而计算本身则几分钟就可以完成。此后,随着真空管计算机和晶体管计算机的出现,程序设计的形式有不同程度的改变,但革命性的变革则是1948年香农重新发现了二值演算之后发生的二值逻辑代数被引入程序设计过程,程序的表现形式就是存储在不同信息载体上的0和1的序列,这些载体包括纸带穿孔卡氢延迟线以及后来的磁鼓磁盘和光盘。此后,计算机程序设计进入了一个崭新的发展阶段,就程序设计语言来讲,经历了机器语言、汇编语言、高级语言、非过程语言等4个阶段,第5代自然语言的研究也已经成为学术研究的热点
== 3、计算机软件产业的发展 ==
计算机软件的发展与计算机软件产业化的进程息息相关。在电子计算机诞生之初,计算机程序是作为解决特定问题的工具和信息分析工具而存在的,并不是一个独立的产业。计算机软件产业化是在20世纪50年代随着计算机在商业应用中的迅猛增长而发生的,这种增长直接导致了社会对程序设计人员需求的增长,于是一部分具有计算机程序设计经验的人分离出来专门从事程序设计工作,并创建了他们自己的程序设计服务公司。根据用户的订单提供相应的程序设计服务,这样就产生了第一批软件公司,如1955年由Elmer Kubie和John W. Sheldon创建的计算机使用公司CUC和1959年创建的应用数据研究ADR公司等。
进入20世纪60和70年代计算机的应用范围持续快速增长,使计算机软件产业无论是软件公司的数量还是产业的规模都有了更大的发展,同时与软件业相关的各种制度也逐步建立。1968年Martin Goetz 获得了世界上第一个软件专利,1969年春ADR公司就IBM垄断软件产业提出了诉讼,促使IBM在1969年6月30日宣布结束一些软件和硬件的捆绑销售,为软件产品单独定价这一时期成立的软件公司有美国计算机公司CCAInformation Builder公司和Oracle 公司等。