首页 >
计算机程序
✍ dations ◷ 2025-06-05 18:16:19 #计算机程序
计算机程序(英语:Computer Program)是指一组指示计算机或其他具有消息处理能力设备每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序的源代码就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序源代码),用于指导懂汉语(编译器)同时也会烹饪手法(体系结构)的人来做这道菜(程序)。 通常,以英文文本为基础的计算机程序要经过编译和链接而成为一种人们不易看清而计算机可解读的一连串数字的格式,然后放入运行。这种程序也叫作编译语言。未经编译就可运行(英语:Executable)的程序,通常称之为脚本程序(script)或解释型语言。为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个加载器开始的。在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。在一台基于最常见的冯诺依曼体系结构(又称普林斯顿结构)的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机之内。 如果计算机选择冯诺依曼体系结构,那么程序就被加载入内存。 指令序列顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。基于这种体系的计算机,如果没有程序的支持,将无法工作。一个计算机程序是一系列指令的集合。程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译器或者解释器翻译成机器语言。 有时,也可以用汇编语言编程,汇编语言实质就是表示机器语言的一组记号-在这种情况下,用于翻译的程序叫做汇编程序。数据可以被定义为被程序处理的信息。当我们考虑到整个计算机系统时,有时程序和数据的区别就不是那么明显了。中央处理器有时有一组微指令控制硬件,数据可以是一个有待执行的程序(参见脚本编程语言),程序可以编写成去编写其它的程序;所有这些例子都使程序和数据的比较成为一种视角的选择。有人甚至断言程序和数据没有区别。编写一个程序去生成另外一个程序的过程被称之为元编程(Metaprogramming)。它可以被应用于让程序根据给定数据生成代码。单单一个程序可能不足以表示给定数据的所有方面。让一个程序去分析这个数据并生成新的程序去处理数据所有的方面可能会容易一些。Lisp就是一例支持这种编程模式的程序语言。在神经网络里储存的权重是一种数据。正是这些权重数据,跟网路的拓扑结构一起,定义了网络的行为。人们通常很难界定这些数据到底表示什么或者它们是否可以由程序来代替。这个例子以及跟人工智能相关的其它一些问题进一步考验程序和数据的区别。算法指解决某个问题的严格方法,通常还需辅以某种程度上的运行性能分析。算法可以是纯理论的,也可以由一个计算机程序实现。理论算法通常根据复杂性分为不同类别;实现的算法通常经过剖析(Profiling)以测试其性能。请注意虽然一个算法在理论上有效可行,但是一个糟糕的算法仍会浪费宝贵的计算机资源。(更详细信息,参见算法信息论(Algorithmic Information Theory))编写程序是以下步骤的一个往复过程:编写新的源代码,测试、分析和提高新编写的代码以找出语法和语义错误。从事这种工作的人叫做程序员。由于计算机的飞速发展,编程的要求和种类也日趋多样,由此产生了不同种类的程序设计员,每一种都有更细致的分工和任务。软件工程师和系统分析员就是两个例子。现在,编程的长时间过程被称之为“软件开发”或者软件工程。后者也由于这一学科的日益成熟而逐渐流行。因此,如今程序设计员可以指某一领域的编程专家,也可以泛指软件公司里编写一个复杂软件系统里某一块的一般程序员。一组为某一软件公司工作的程序员有时会被指定一个程序组长或者项目经理,用以监督项目进度和完成日期。大型软件通常经历由系统设计师掌握的一个长时间的设计阶段,然后才交付给开发人员。牛仔式的编程(未经详细设计)是不为人所齿的。两种当今常见的程序开发方式之一是项目组开发方式。使用这种方式项目组里每一个成员都能对项目的进行发表意见,而由其中的某一个人协调不同意见。这样的项目组通常有15个左右的成员,这样做是为了便于管理。第二种开发方式是结对开发。
相关
- 群体集体又称群体(英语:collective),当多个团体中有一个共同的问题或动机,为了达到同一目标而组合成集体来共同努力实现共同目标。集体可以提出或行使政治或社会权利。有些集体是建立
- 甲基黄嘌呤黄嘌呤(英语:xanthine)是一种广泛分布于人体及其他生物体的器官及体液中的一种嘌呤碱,常用作温和的兴奋剂和支气管扩张剂,特别用于治疗哮喘症状。咖啡因、茶碱及可可碱(主要在巧克
- 1818号染色体是人类23对染色体中的一对,正常人拥有2条18号染色体。18号染色体缠绕了约8500万碱基对(构筑DNA的材料),并包含了人类细胞中约2.5%的DNA。辨识染色体上的基因是遗传学
- 安那托利亚语族安那托利亚语族是印欧语系下的一族语言(在有些分类中,此族不属于印欧语系,但极为接近)。此语族语言曾在小亚细亚使用,目前已消亡,包括赫梯语、卢维语(“赫梯象形文字”使用的语言)和
- 晋升体系晋升体系(拉丁文:Cursus honorum;意为“荣耀之路”)是在罗马共和国和罗马帝国初期时,有抱负的政治家们就任政府职位的次序。这个制度是为有元老身份的人而设。晋升体系包含军队及
- 毒品战争毒品战争,是美国主要政治术语,常用于表示美国联邦政府对于毒品的防制而做出的行动,即军事支援(英语:military aid)、军事干预、减少非法药品交易(英语:Illegal drug trade)。这一举措
- 袋鼹南方袋鼹 Notoryctes typhlops 托氏袋鼹 Notoryctes caurinus袋鼹属(学名:Notoryctes),属于哺乳纲,袋鼹目下只有袋鼹科一科,袋鼹科只有袋鼹属一属。只有两个种,但目前对其所知仍然
- 麦角钙化醇麦角钙化醇(英语:Ergocalciferol)是维生素D2的化学名,为麦角固醇在紫外线作用下产生的开环甾体(英语:secosteroid)。早期制备的麦角钙化醇商品名为Viosterol,由麦角固醇在紫外线光照
- 达夫尼与克罗埃达夫尼与克罗埃(法语:Daphnis et Chloé)乃莫里斯·拉威尔根据同名音乐剧所作之芭蕾舞曲。该曲之芭蕾舞音乐,以古希腊诗人朗高斯(Longus)的‘达夫尼与克罗埃’全三场组成作品为基
- 山中伸弥山中伸弥(日语:山中 伸弥/やまなか しんや Yamanaka Shin'ya,1962年9月4日-),日本干细胞科学家,现任京都大学教授、UCSF附属格拉德斯通心血管病研究所(英语:Gladstone Institutes)高等