Das Programm ist eine gespeicherte Vorschrift für aufeinander folgende elementare Informationswandlungen. Programmieren heißt, eine solche Vorschrift aufzustellen, also den anwendungsseitigen Algorithmus unter Nutzung vorgegebener elementarer Wandlungsvorschriften und Anweisungen zur Ablaufsteuerung zu formulieren. Der Computer braucht alle Wandlungsvorschriften und Anweisungen naturgemäß in binär codierter Form – mit anderen Worten: als Folgen von Maschinenbefehlen. Programme, die aus Maschinenbefehlen bestehen, heißen Maschinen- oder Objektprogramme.
Folgen von Einsen und Nullen sind für den Menschen äußerst unhandlich. Deshalb programmiert heutzutage praktisch niemand mehr einen Computer direkt. Vielmehr werden dazu symbolische Notationsweisen verwendet. Diese Notationsweisen heißen formale Sprachen oder Programmiersprachen.
Eine Programmiersprache, die sich direkt auf die Maschinenbefehle eines Prozessors bezieht, heißt Assemblersprache (das ist praktisch eine komfortable Möglichkeit, Maschinenbefehle anzugeben, ohne sich um deren binäre Codierung kümmern zu müssen). Programmiersprachen, die von Maschinenbefehlen unabhängig sind, heißen höhere Programmiersprachen.
Ein Programm, das in der Formulierung einer Programmiersprache vorliegt, heißt Quellprogramm. Das binär codierte Programm, das als Folge von Maschinenbefehlen unmittelbar vom Prozessor ausgeführt werden kann, heißt Objektprogramm.
Im Englischen wird – mit gleicher Bedeutung – für „Programm” gelegentlich der Begriff „Code” verwendet; man spricht dann von Source Code und Object Code. Um Quellprogramme in Objektprogramme zu wandeln, wird der Computer ausgenutzt; die Wandlung erfolgt automatisch mittels besonderer Programme, die bei Assemblersprachen als Assembler und bei höheren Programmiersprachen als Compiler oder Interpreter bezeichnet werden.