For faster navigation, this Iframe is preloading the Wikiwand page for 电脑程序.

电脑程序

维基百科,自由的百科全书

此条目需要补充更多来源。 (2018年7月15日)请协助补充多方面可靠来源改善这篇条目无法查证的内容可能会因为异议提出而移除。致使用者:请搜索一下条目的标题(来源搜索:"计算机程序"网页新闻书籍学术图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。
“电脑程序”的各地常用别名
中国大陆计算机程序
港台电脑程式
马新电脑程序
#include <stdio.h>
int main(void) {
    printf("Hello world!\n");
    return 0;
}
CHello World程序样例
public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}
Java的Hello World程序样例
using System;

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
C♯的Hello World程序样例
print("Hello World!")
Python 3的Hello World程序样例
#include <iostream>
int main()
{
    std::cout<<"Hello World!"<<endl;
    return 0;
}
C++Hello World程序样例

电脑程序(英语:Computer Program)是指一组指示电脑或其他具有消息处理能力的电子设备每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序的原始码就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序原始码),用于指导懂汉语(编译器)同时也会烹饪手法(体系结构)的人来做这道(程序)。 通常,以英文文本为基础的电脑程序要经过编译链接而成为一种人们不易看清而电脑可解读的一连串数字的格式,然后放入运行。这种程序也叫作编译语言。未经编译就可运行的程序,通常称之为脚本程序(script)或解释型语言

程序的运行

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

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

冯诺依曼体系结构

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

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

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

程序和数据

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

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

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

算法

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

开发

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

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

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

参见

参考文献

  1. Eric Baum What is Thought MIT Press 2004年 ISBN 0-262-02548-5
  2. - Chapter Two: The Mind is a Computer Program

外部链接

{{bottomLinkPreText}} {{bottomLinkText}}
电脑程序
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.