为什么计算机采取程序存储方式?

为什么计算机采取程序存储方式?,第1张

冯.诺依曼描述的计算机基本工作原理的主要思想是程序存储。

存储程序原理又称“冯·诺依曼原理”(1946年提出)。将慎锋程序像数据一样存储到计算机内部存储器中的一种设计原理。程序存入存储器后,计算机便可自动地从一条指令转到执行另一条指令。现代电子计算机均按此原理设计。

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令高孝备和数据的宽度相同,如英特尔公司的8086中央处理器的程序戚毁指令和数据都是16位宽。

计算机程序又称“计算机软件”,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列[1]。随着电子技术的广泛应用,导致产生了专门提供计算机所需软件的新兴工业部门及新型商品——计算机软件。

中文名

计算机程序

外文名

Computer program

又名

软件

简称

程序

定义

计算任务的处理对象和处理规则的描述

快速

导航

表现形式程序数据有关术语

简介

计算机程序(Computer program),也称为软件(software),简称程序(英语:Program),是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标计算机体系结构上。

计算机程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据或信息,处理规则反映处理动作和步骤。[2]

计算机程序通常是用高级语言编写源程序,程序包含数据结构,算法,存储方式 编译等,经过语言翻译程序(解释程序和编译程序)转换成机器接受的指令。程序可按其设计目的的不同,分为两类:一类是系统程序,它是为了使用方便和充分发挥计算机系统效能而设计的程序,通常由计算机制造厂商或专业软件公司设计,如 *** 作系统、编译程序等;另一类是应用程序,它是为解决用户特定问题而设计的程序,通常由专业软件公司或用户自己设计,如账务处理程序、文字处理程序等。

表现形式

计算机程序通常都具有两种表现形式:程序的目标代码,即目标程序,指可体现为一个电脉冲序列的一串二进 制数(由“0”和“1”组成)指令编码。这种电脉冲序列是 用来驱动计算机工作(以取得某种结果)时的计算机程 序的表现形式。源程序,指由一系列排列有序的符号化指令或符号化语句。作为符号化的指令序列或语句序列,程序可以用数字、文字及符号表现,并且可以用有形媒体如纸、磁带、磁盘等把表现加以固定。当一项程序以源代码的形式开发出来之后,通常可利用计算机系统将其“翻译”成可供计算机执行的目标代码[3]。

程序数据

计算机程序数据可以被定义为被程序处理的信息。当我们考虑到整个计算机系统时,有时程序和数据的区别就不是那么明显了。中央处理器有时有一组微指令控制硬件,数据可以是一个有待执行的程序,程序可以编写成去编写其它的程序;所有这些例子都使程序和数据的比较成为一种视角的选择。有人甚至断言程序和数据没有区别。

编写一个程序去生成另外一个程序的过程被称之为原编程(Metaprogramming)。它可以被应用于让程序根据给定数据生成代码。单一一个程序可能不足以表示给定数据的所有方面。让一个程序去分析这个数据并生成新的程序去处理数据所有的方面可能会容易一些。Lisp就是一例支持这种编程模式的程序语言。

在神经网络里储存的权重是一种数据。正是这些权重数据,跟网路的拓扑结构一起,定义了网络的行为。人们通常很难界定这些数据到底表示什么或者它们是否可以由程序来代替。这个例子以及跟人工智能相关的其它一些问题进一步考验程序和数据的区别。

算法

算法指解决某个问题的严格方法,通常还需辅以某种程度上的运行性能分析。算法可以是纯理论的,也可以由一个计算机程序实现。理论算法通常根据复杂性分为不同类别;实现的算法通常经过颇析(Profiling)以测试其性能。请注意虽然一个算法在理论上有效可行,但是一个糟糕的实现仍会浪费宝贵的计算机资源。

开发

编写程序是以下步骤的一个往复过程:编写新的源代码,测试、分析和提高编写的代码以找出语法和语义错误。从事这种工作的人叫做程序设计员??趋多样,由此产生了不同种类的程序设计员,每一种都有更细致的分工和任务。软件工程师和系统分析员就是两个例子。编程的长时间过程被称之为“软件开发”或者软件工程。后者也由于这一学科的日益成熟而逐渐流行。

因此,如今程序设计员可以指某一领域的编程专家,也可以泛指软件公司里编写一个复杂软件系统里某一块的一般程序员。一组为某一软件公司工作的程序员有时会被指定一个程序组长或者项目经理,用以监督项目进度和完成日期。大型软件通常经历由系统设计师的掌握的一个长时间的设计阶段,然后才交付给开发人员。

两种常见的程序开发方式之一是项目组开发方式。使用这种方式项目组里每一个成员都能对项目的进行发表意见,而由其中的某一个人协调不同意见。这样的项目组通常有10个左右的成员,这样做是为了便于管理。第二种开发方式是结对开发

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可\x0d\x0a将它们分为两类:\x0d\x0a 1.解释类\x0d\x0a执行方式类似于我们日常生活中的“同声翻译”,应用神清程序源闷瞎喊代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序,典型的解释型的高级语言有BASIC。\x0d\x0a 2.编译类\x0d\x0a编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修蚂野改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Delphi等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12469572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存