Ein Programm ist in ein ausformulierter Algorithmus in einer bestimmten Pogrammiersprache. Eine Programm kann in einer Maschinensprache (001011), in einer maschinennahen Programmiersprache (z.B. Assembler) oder in einer höheren Programmiersprache ( z.B. Java oder snap!) geschrieben werden.

 Eine maschinennahe Sprache verfügt über einen kleinen Befehelssatz, mit dem Maschinenanweisungen codiert sind. Eine höhere Programmiersprache verfügt über eine große Sammlung an  Anweisungen, die für einen Entwickler leicht lesbar sind, für den Rechner aber nicht.  Sowohl Programm in maschinennahen Sprache als auch in höheren Sprachen müssen dem Rechner "übersetzt" werden. Erst dann kann ein ausführbares Programm erzeugt werden.
Ein ausführbares Programm wird immer in einer Datei gespeichert. Die Endung dieser Datei deutet auf die Entwicklungssprache hin, zum Beispiel programm.java oder smartcity.xml. Solche Dateien können meistens sogar in einem Texteditor bearbeitet werden. Dateien, die bereits in einer Maschinensprache vorliegen, haben in Windows-Betriebssystemen eine Endung *.exe. Das sind ausführbare Dateien, deren Quellcode bereits aus einer Programmiersprache in einen Maschinencode übersetzt worden ist (dazu sagt man auch kompilieren).
Das Betriebssystem ist vereinfacht gesagt auch ein Programm oder eine Sammlung von Programmen, welche dazu dienen, eine Verwaltung von Anwendungssoftware und Systemressourcen vorzunehmen. Es ist eine Schnittstelle zwischen Hardware eines Rechners und Software, die vom Benutzer verwendet wird. Das Betriebssystem liest die ausführbare Datei und führt diese aus.