Ein Computerprogramm (kurz Programm) gehört zur Software eines Computers. Es liegt meist auf einem Speicher als ausführbare Programmdatei im sogenannten Maschinencode vor, die zur Ausführung in den Arbeitsspeicher des Rechners geladen wird. Das Programm wird als Abfolge von Maschinen-, d. h. Prozessorbefehlen von dem/den Prozessoren des Computers verarbeitet und damit ausgeführt.
Eine Programmdatei, die aus Maschinencode besteht, enthält Befehle aus dem Sprachschatz des Prozessors, d. h. Befehle, die für den Prozessor „verständlich“ und damit ausführbar sind. Die Erstellung eines solchen Programms bezeichnet man allgemein als Programmierung oder auch als Implementierung. In den Anfängen der Programmierung wurde - bis zur Entwicklung von Programmiersprachen - ausschließlich in Maschinencode programmiert. Der Programm- bzw. Quelltext, den der Programmierer in einer Programmiersprache abgefasst hat, besteht aus einer Abfolge von (zumeist der englischen Sprache entnommenen) Anweisungen, die für den Programmierer (i. A.) verständlicher sind als der Maschinencode (z. B.: ADD, SUB, AND, OR etc). Später ergänzten die höheren Programmiersprachen Schleifen, Abstraktion und modularen Aufbau.
Eine höhere Programmiersprache ist eine Programmiersprache zur Abfassung eines Computerprogramms, die einer der historisch gewachsenen menschlichen Sprachen (Englisch, Japanisch usw.) sehr entfernt ähnelt und das programmieren erleichtert. Damit ein in einer Hochsprache geschriebenes Programm auf einem Prozessor ausgeführt werden kann, muss es in Maschinencode übersetzt werden. Eine Anweisung einer höheren Programmiersprache wird im Allgemeinen in mehrere Maschinenbefehle übersetzt. Den Übersetzungsvorgang nennt man Compilierung. Um aus dem Quelltext den Maschinencode zu generieren, wird ein Assembler, Compiler oder Interpreter benötigt. Dieser übersetzt die Anweisungen der Programmiersprache, die für menschliche Benutzer verständlich und bearbeitbar sein sollen, in die semantisch entsprechenden Befehle der Maschinensprache des verwendeten Computers.
Die Anweisungen, die (als Teil von Programmen) einen konkreten Lösungsweg repräsentieren, werden als Algorithmus bezeichnet.