计算机程序细节的完整收集
基本介绍中文名:计算机程序mbth:计算机程序,又称软件简称:程序类型:计算机动作指令介绍、脚本程序、程序运行、体系结构、程序数据、算法、开发、介绍计算机程序(英文:Computer program)又称软件(英文:sofare),程序(英文:program)是指一组指令,指令计算机或其他具有信息处理能力的设备执行动作或作出判断,通常用编程语言编写,运行在某一目标体系结构上。举个例子,一个程序就像一个用中文(编程语言)写的红烧肉菜谱(程序),用来指导懂中文和烹饪技术(建筑学)的人做这道菜。脚本程序通常情况下,计算机程序要编译链接成一种人不易理解而计算机能理解的格式,然后运行。无需编译即可运行的程序通常称为脚本程序。程序运行为了运行一个程序,计算机加载程序代码和可能的数据,从而初始化到一个启动状态,然后调用一些启动机制。在最低级别,这些是由引导序列启动的。在大多数计算机中,操作系统(如Windows)加载并执行许多程序。在这种情况下,计算机程序指的是单个可执行映射,而不是当前在该计算机上运行的所有程序。基于最常见的冯诺依曼体系结构(也称为哈佛体系结构)的计算机体系结构,程序从外部设备(通常是硬盘)加载到计算机中。如果计算机选择冯·诺依曼架构,那么程序就被载入内存。指令序列按顺序执行,直到执行跳转或分支指令或发生中断。所有这些指令都会改变指令寄存器的内容。基于这个系统计算机没有程序的支持是无法工作的。计算机程序是一组指令。程序中的指令都是基于机器语言的;程序通常先用计算机编程语言编写,然后通过编译程序或解释和执行程序翻译成机器语言。有时候,程序也可以用汇编语言编写,汇编语言本质上是一组代表机器语言的符号——在这种情况下,用于翻译的程序称为汇编程序。程序数据程序已定义。如何定义数据?数据可以定义为由程序处理的信息。当我们考虑整个计算机系统时,有时程序和数据的区别并不那么明显。CPU有时有一套微指令控制硬件,数据可以是要执行的程序(见脚本语言),编写程序可以写其他程序;所有这些例子使得程序和数据之间的比较成为一种视角的选择。有些人甚至断言程序和数据没有区别。编写一个程序来生成另一个程序的过程称为元编程。它可以用来让程序根据给定的数据生成代码。单个程序可能不足以代表给定数据的所有方面。对于一个程序来说,分析这些数据并生成一个新的程序来处理这些数据的所有方面可能更容易。Lisp是支持这种编程模式的编程语言的一个例子。存储在神经网络中的权重是一种数据。正是这些权重数据与网络的拓扑一起定义了网络的行为。通常很难定义这些数据代表什么,或者它们是否可以被程序取代。这个例子和其他与人工智能相关的问题进一步检验了程序和数据之间的区别。算法是指解决一个问题的严格方法,通常需要辅以某种程度的性能分析。该算法可以是纯理论的,也可以由计算机程序实现。理论算法通常根据复杂程度分为不同的类别;所实现的算法通常被剖析以测试其性能。请注意,虽然一个算法在理论上是有效可行的,但是一个糟糕的实现仍然会浪费宝贵的计算机资源。(更多详情,参见算法信息论。)开发和编写程序是以下步骤的往复过程:编写新的源代码,测试、分析和改进新编写的代码,找出语法和语义错误。从事这种工作的人被称为程序员变得多样化,这就导致了不同种类的程序员,每种程序员都有更细致的分工和任务。软件工程师和系统分析师就是两个例子。编程的漫长过程被称为“软件开发”或软件工程。后者因为这门学科的成熟,越来越吃香。所以,现在的程序员可以指某个领域的编程专家,也可以指在软件公司写一个复杂软件系统的一个普通程序员。为软件公司工作的一组程序员有时会被指派一个项目负责人或项目经理来监控项目的进度和完成日期。大型软件在交付给开发人员之前,通常会经历一个由系统设计人员掌握的漫长的设计阶段。牛仔编程(没有详细设计)被鄙视。当今两种常见的程序开发方法之一是项目团队开发。这样,项目组的每个成员都可以对项目的进展发表意见,其中一个成员可以协调不同的意见。这样的项目团队通常有10左右的成员,这样做是为了方便管理。第二种发展方式是结对发展。