为了使计算机能够做某件事, 你(或其他人)需要在繁琐的细节上明确告诉它怎么做。对“怎么做”的描述称为程序, 编程是书写和测试这个程序的行为。
在某种意义上, 我们以前都编写过程序。毕竟, 我们曾描述过所要完成的任务, 例如“如何开车去最近的电影院”、 “如何找到楼上的浴室”和“如何用微波炉热饭”。这种描述和程序之间的不同表现在精确度上: 人类往往通过常识对不明确的指示加以补偿, 但是计算机不会这样。例如, “沿走廊右转, 上楼, 它就在你的左边”可能是对如何找到楼上的浴室的很好描述。但是, 当你看到这些简单的指令时, 你会在其中找到草率的语法和不完整的指令。人类很容易做出补偿。例如, 假设你坐在桌子旁询问浴室的方向。你不需被告知离开桌子来到走廊、绕过(不是跨过或钻过)桌子、不要踩到猫等。你不需要被告知不要带走刀子和叉子,以及记住打开灯才能看到楼梯。你也不需要被告知进放浴室之前首先要开门。
与此相反, 计算机确实是不很笨的。它们做的所有事都要准确、详细地描述。我们考虑 “沿走廊右转, 上楼, 它就在你的左边”。走廊在哪里?什么是走廊?什么是“右转”?什么是楼梯?我如何上楼梯?(每次迈出一步?两步?沿扶手滑上楼梯?)什么是我的左边?它什么时候会在我的左边?为了向计算机精确描述这些“事情”, 我们需要一种由特定语法精确定义的语言(英语对它来说有太多的松散结构)和针对我们要执行的多种行动明确定义的词汇。这种语言称?喑逃镅裕?C++是为各种编程任务而设计的编程语言。