从1946年第一台计算机ENIAC产生至今,计算机技术已经走进千家万户,深入各行各业,如卫星发射、公共交通、电子商务等。随着技术的发展,人们的生活越来越离不开计算机,计算机技术改变了人们的生活、工作和学习方式,可以代替人们做很多复杂、危险的工作,提高人们的工作效率,实现了智能化与科学化的管理。计算机之所以有这么多优势,主要是借助其软硬件技术来完成的。计算机硬件是计算机技术的物质体现形式,主要包括个人电脑外部设备及网络设备。计算机的软件系统是指计算机在运行的各种程序、数据及相关的文档资料。计算机软件通常被划分为系统软件和应用软件两大类。系统软件能保证计算机按照用户的意愿正常运行,为满足用户使用计算机的各种需求,帮助用户管理计算机和维护资源执行用户命令、控制系统调度等任务。应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个浏览器;也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件;也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。
计算机程序是一组计算机能识别和执行的指令,运行于计算机硬件上,满足人们某种需求的信息化工具,它以某些程序设计语言编写。程序这一概念的出现,得益于人类长期的生活实践,人们每做一件相对比较复杂的事情,都会按照一定的“程序”,一步一步地进行操作。当然,这种“程序”是用自然语言描述的,从这个角度看,程序设计似乎并不神秘,事实上也确实如此。但是,程序设计是一种高智力的活动,不同的人对同一事物的处理可以设计出完全不同的程序,知识和阅历(经验)与程序设计有一定的关系。
对于程序的定义,随着时间的推移和计算机技术的发展,有不同的说法定义。
20世纪70年代,计算机科学家Nikiklaus Wirth曾提出这样一个公式——程序=算法+数据结构。算法是解决客观问题的严格的解题思想,是程序的核心。数据结构是计算机存储、组织数据的方式,是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。
20世纪80年代,面向对象编程思想趋于成熟,程序也可以描述为“程序=对象+对象”。利用面向对象的思想将算法和数据结构封装成对象,也就是将数据和对数据的操作封装成对象。程序是由一个个对象构成。
20世纪90年代,软件体系结构这一概念正式提出,程序也可以描述为“程序=组件+连接件”。组件指语义完整、语法正确和有可复用价值的过程,是软件复用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。连接件是组件间建立和维护行为关联与信息传递的途径。程序就是通过连接件将组件组合起来。