Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Ein Computerprogramm ist die Umsetzung eines Algorithmus in Form die von einem Computer verarbeitet werden kann. Dieser Prozess wird Implementierung bezeichnet.
Der Begriff Programm wird sowohl für den in einer Programmiersprache verfassten Quelltext als auch für den von einem ausführbaren Maschinencode verwendet. Um aus dem Quelltext den zu generieren wird ein Compiler oder Interpreter benötigt. Diese übersetzen die Befehle der die für menschliche Benutzer verständlich und bearbeitbar sollen in die semantisch entsprechenden Befehle der Maschinensprache des verwendeten
Sobald eine formale Beschreibung eines Algorithmus eine genau definierte Verarbeitungsvorschrift vorliegt kann der umgesetzt ( implementiert ) werden. Dazu wird eine geeignete Programmiersprache ausgewählt.
Zur Umsetzung wird heute meist eine höhere Programmiersprache verwendet die von einem Computer eventuell nicht direkt ausgeführt werden kann zuerst compiliert oder interpretiert werden muss. In wie Pascal dienen Variablen Ausdrücke Vergleiche Zuweisungen und Kontrollstrukturen zur Umsetzung des ggT-Algorithmus:
(* Schritt3: *) WHILE A <> DO BEGIN (* Solange A ungleich B (* Schritt1: *) IF B>A THEN BEGIN Falls B größer als A *) H:=A; B:=H; (* Vertausche A und B *) (* Schritt2: *) A:=A-B; (* Ersetze A A-B *) END;
Bei der Umsetzung wird mit der von Schritt 3 begonnen. Der ursprüngliche Algorithmus nicht den Fall dass A und B zu Beginn gleich sein können. Wäre die den größten Teiler von 103 und 103 finden würde ein Mensch sofort das Ergebnis nennen er würde den Algorithmus gar nicht Der originale Algorithmus würde aber Null ergeben. Umsetzung auf einem Rechner muss auch alle berücksichtigen. Durch das Vorziehen von Schritt 3 der Sonderfall hier korrekt behandelt.
Pascal und andere Programmiersprachen besitzen keine zum Vertauschen von Zahlen. Dies muss daher elementarere Schritte umgesetzt werden. Eine zusätzliche Variable eine sogenannte Hilfsvariable erlaubt die Vertauschung mit von drei Zuweisungen:
H:=A; (* Rette Wert von A der Hilfsvariable H *) A:=B; (* Überschreibe mit dem Wert von B *) B:=A; Überschreibe B mit dem Wert von H *)
Damit hieraus ein korrektes Programm wird der Algorithmus noch um Ein- bzw. Ausgabeanweisungen jedoch auch um Variablen und eine Programmstruktur werden. Diese sind nicht Teil des eigentlichen
PROGRAM Ggt(Input Output); (* Programmkopf *) A B H: Integer; (* Variablendefinition *) ReadLn(A B); (* Eingabe von A und *) WHILE A <> B DO BEGIN Euklidischer *) IF B>A THEN BEGIN (* *) H:=A; A:=B; B:=H; END; A:=A-B; END; (* Ausgabe von A *) END. (* *)
Erst dieses Programm kann mit einem Texteditor in eine Datei geschrieben werden die dann dann übersetzt ausgeführt werden kann. Hierzu ist ein Compiler erforderlich der den Code in der in Maschinensprache übersetzt und das Ergebnis in eine Datei schreibt. Diese kann dann über ein gestartet werden. Das Programm muss dabei nur übersetzt werden. Es kann danach beliebig oft werden.
Einige Programmiersprachen benötigen keinen Compiler aber dessen einen Interpreter der Programme ohne vorherige Übersetzung ausführen Der Interpreter selbst ist dann ein ausführbares in Maschinensprache.
Eine weitere Möglichkeit besteht in der von Zwischencode ( bytecode ) der vom Compiler an Stelle des generiert wird.