族谱网 头条 人物百科

计算机程序

2017-10-16
出处:族谱网
作者:阿族小谱
浏览:494
转发:0
评论:0
程序的运行为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个加载器开始的。在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。冯诺依曼体系结构在一台基于最常见的冯诺依曼体系结构(又称普林斯顿结构)的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机之内。如果计算机选择冯诺依曼体系结构,那么程序就被加载入内存。指令序列顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。基于这种体系的计算机,如果没有程序的支持,将无法工作。一个计算机程序是一系列指令的集合。程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译器或者解释器翻译成...

程序的运行

为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个加载器开始的。

在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。

冯诺依曼体系结构

在一台基于最常见的冯诺依曼体系结构(又称普林斯顿结构)的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机之内。 如果计算机选择冯诺依曼体系结构,那么程序就被加载入内存。 指令序列顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。

基于这种体系的计算机,如果没有程序的支持,将无法工作。一个计算机程序是一系列指令的集合。

程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译器或者解释器翻译成机器语言。 有时,也可以用汇编语言编程,汇编语言实质就是表示机器语言的一组记号-在这种情况下,用于翻译的程序叫做汇编程序。

程序和数据

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

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

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

算法

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

开发

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

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

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

参见

程序员

卸载程序

源代码

电子计算机

计算机软件

程序设计语言

编程范型

固件

操作系统

图灵机

系统需求

参考文献

Eric Baum What is Thought MIT Press 2004年 ISBN 0-262-02548-5

- Chapter Two: The Mind is a Computer Program


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱

更多文章

更多精彩文章
评论 {{commentTotal}} 文明上网理性发言,请遵守《新闻评论服务协议》
游客
发表评论
  • {{item.userName}} 举报

    {{item.content}}

    {{item.time}} {{item.replyListShow ? '收起' : '展开'}}评论 {{curReplyId == item.id ? '取消回复' : '回复'}}

    回复评论
加载更多评论
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回
打赏
私信

推荐阅读

· 计算机程序设计艺术
概述高德纳1962年,Knuth还是个研究生的时候就开始了程序设计的工作。高德纳在攻读博士其间,Addison-Wesley公司的顾问RichardVarga找他出书,因课业繁忙,一时没时间草稿,1963年高德纳获得加州理工学院数学博士学位。1968年,31岁开始出版他的历史性经典巨著:TheArtofComputerProgramming,一口气写了三千多页,自此他计划写7卷。1999年底被美国科学家期刊(AmericanScientist)列为20世纪最佳12部学术专著之一,与狄拉克的“量子力学”、爱因斯坦的“相对论”、曼德布罗特的“分形论”、鲍林的“化学键”、罗素和怀特海德的“数学基础”、冯诺依曼和摩根斯坦的“博弈论”、维纳的“控制论”、伍德沃和霍夫曼的“轨道对称性”、费曼的“量子电动力学”等科学史上的重要著作并列必读经典。1976年为止,已卖出超过一百万册。任何人发现书上的错误,都...
· 程序错误
史上的第一个隐错1947年9月9日,葛丽丝·霍普(GraceHopper)发现了第一个电脑上的bug。当在MarkII计算机上工作时,整个团队都搞不清楚为什么电脑不能正常运作了。经过大家的深度挖掘,发现原来是一只飞蛾意外飞入了一台电脑内部而引起的故障(如图所示)。这个团队把错误解除了,并在日记本中记录下了这一事件。也因此,人们逐渐开始用“Bug”(原意为“虫子”)来称呼计算机中的隐错。现在在华盛顿的美国国家历史博物馆中还可以看到这个遗稿。Bug的管理与一些常见的名词典型错误历史(GNUClasspathproject数据)。由用户提交的错误是“未确认”(unconfirmed)的,一旦该错误由开发人员重现,即为“已确认”(confirmed)错误。此后已确认的错误会“解决”(fixed)。其他类别的错误(无法重现、不予解决等)通常并不多见。处理进度处理方式Severity:Bug造成的严重...
· 计算机
历史本来,计算机的英文原词“computer”是指从事数据计算的人。而他们往往都需要借助某些机械计算设备或模拟计算机。这些早期计算设备的祖先包括有算盘,以及可以追溯到公元前87年的被古希腊人用于计算行星移动的安提基特拉机械。随着中世纪末期欧洲数学与工程学的再次繁荣,1623年德国博学家WilhelmSchickard(德语:WilhelmSchickard)率先研制出了欧洲第一部计算设备,这是一个能进行六位以内数加减法,并能通过铃声输出答案的“计算钟”。使用转动齿轮来进行操作。1642年法国数学家布莱士·帕斯卡在英国数学家WilliamOughtred所制作的“计算尺”的基础上,将其加以改进,使能进行八位计算。还卖出了许多制品,成为当时一种时髦的商品。1801年,法国人约瑟夫·玛丽·雅卡尔对织布机的设计进行改进,使用一系列打孔的纸卡片来作为编织复杂图案的程序。尽管这种被称作“雅卡尔织布机”...
· 程序员
工作范围系统分析与设计(SystemsAnalysisandDesign)代码撰写(Coding)测试与除错(TestingandDebugging)撰写技术文件(WriteSpecification)相关职业系统管理员(SA)系统设计师(SD)数据库管理员(DBA)应用分析师(AA)技术支持(TS)相关戏称攻城狮程序猿码农(一般用来自嘲为像农民高强度一样的编码工作者)工程师打字员
· 程序设计
设计工具开发环境图像展览早期IBM402会计电脑的程序是用改变线路连接的方式来撰写GANT程序设计软件相关条目中文编程程序软件程序设计语言程序设计实践程序设计方法学软件开发软件设计模式

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信