前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >程序是什么

程序是什么

作者头像
恋喵大鲤鱼
发布2018-08-03 10:36:54
8170
发布2018-08-03 10:36:54
举报
文章被收录于专栏:C/C++基础C/C++基础

程序(Program)是计算机系统的必备元素,因为计算机系统由硬件、操作系统以及软件构成,而程序又是软件的组成部分。操作系统是管理和控制计算机硬件与软件资源的计算机软件,是直接运行在“裸机”上最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。可见操作系统也是一个特殊的程序,特殊在它扮演这一个统筹管理的角色,类似于国家职能机关,管理着社会大大小小的事务,让社会有条不紊的发展。

程序与软件(Software)的概念不同,但常常因为概念相似而被混淆。软件指程序与其相关文档或其他从属物的集合。一般的我们视程序为软件的一个组成部分,简单地说,“软件=程序+文档”。比如一个游戏软件包括程序(如.exe等)和其它图片(如.bmp等)、音效(如*.wav等)、使用说明(如readme.txt)等附件,那么这个程序称作“应用程序”(Application),而它与其他文件(图片、音效等)在一起合称“软件”。

本质上,程序是在计算机中执行的一系列指令,用于完成特定的目的,通常用某种程序设计语言编写。程序与编程语言、计算机和操作系统的关系,好比餐厅中完成一道酸菜鱼,厨房经理(操作系统)协调安排某厨师(计算机)按照某语言(比如汉语)编写的菜谱(程序),使用各种食材(鱼、八角、料酒等),烹饪出美味的酸菜鱼。软件可以看作菜谱和各种食材的集合,来完成特定的功能(烹饪美食)。

通常,代码文本文件经过预处理、编译、汇编和链接,生成人们不易理解的二进制指令文本,供计算机执行,这种二进制指令文件即为可执行的计算机程序。未经编译可解释运行的程序通常称之为脚本程序,未经编译不可执行的代码文件称之为源文件。下面以C语言为例,介绍一下学习编程语言的经典样例helloword程序的执行过程。源文件helloworld.c如下:

#include <stdio.h>

int main(int argc,char* argv[])
{
    printf("hello world\n");
    return 0;
}

使用g++ helloword.c编译默认生成名为a.out的可执行文件,执行输出结果为“hello world”。程序执行过程经历了如下步骤: (1)二进制可执行文件a.out存储在磁盘上,由CPU或DMA将a.out加载到主存,加载的数据包括指令和待输出的字符串 “hello word”; (2)CPU依次从内存读取指令,执行指令,将“hello word”复制到寄存器; (3)CPU将“hell world”从寄存器复制到标准输出(默认为显示器)。

对于程序的理解,计算机科学家Niklaus Wirth(尼古拉斯·沃斯)从本质上给出了简洁的定义“程序=算法+数据结构”。所以请记住,“软件=程序+文档=算法+数据结构+文档”。


参考文献

[1]深入理解计算机系统 [2]程序.百度百科

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档