PseudocodeDer Pseudocode ist ein Programmcode, der nicht zur maschinellen Interpretation, sondern lediglich zur Veranschaulichung eines Paradigmas oder Algorithmus dient. Meistens ähnelt er höheren Programmiersprachen, gemischt mit natürlicher Sprache und mathematischer Notation. Mit Pseudocode kann ein Programmablauf unabhängig von zugrunde liegender Technologie beschrieben werden. Er ist damit oft kompakter und leichter verständlich als realer Programmcode.[1] Andererseits ist er formaler und damit klarer und weniger missverständlich als eine Beschreibung in natürlicher Sprache. VerwendungUm einen Algorithmus zu verstehen, kann man ihn als Programm untersuchen. Das wird aber erschwert durch die Eigenheiten der Programmiersprache, vor allem ihrer Syntax. Zudem haben verschiedene Programmiersprachen unterschiedliche Syntaxen. Jede Formulierung als Programm in einer bestimmten Programmiersprache schließt alle Leser aus, die dieser Sprache nicht mächtig sind. Deshalb formuliert man den Algorithmus zwar ähnlich einem Programm, aber ohne auf eine bestimmte Programmiersprache einzugehen: in Pseudocode. Pseudocode wird dann eingesetzt, wenn die Funktionsweise eines Algorithmus erklärt werden soll und Einzelheiten der Umsetzung in eine Programmiersprache stören würden. Ein typisches Beispiel sind die Felder, die etwa in Pascal von Eins an indiziert werden, in anderen Sprachen wie Java dagegen von Null an. In Lehrbüchern werden deshalb Algorithmen gelegentlich in Pseudocode wiedergegeben. Man kann ein Programm durch Pseudocode spezifizieren. Das sollte allerdings eher vermieden werden, denn die Formulierung als Pseudocode ist bereits eine Programmiertätigkeit, die von der Konzentration auf die Anforderungen ablenkt.[2] Auch bei der Entwicklung von Algorithmen und der Umformung von Programmen (Programmtransformation, Refactoring) wird Pseudocode eingesetzt. Aussehen und StilrichtungenPseudocode hat den Anspruch, intuitiv klar zu sein. Geeignete Metaphern aus der Umgangssprache geben einen Verfahrensschritt prägnant wieder, ohne dass dazu eine Erklärung nötig ist, zum Beispiel „durchlaufe das Feld a mit Index i“ oder „vertausche die Inhalte der Variablen x und y“. Solche Stilmittel verbessern die Übersicht. Pseudocode kann sich in seinem Stil an eine bestimmte höhere Programmiersprache anlehnen, zum Beispiel an Pascal oder an C. Ein an die Programmiersprache Java angelehnter Pseudo-Code nennt sich Jana. Im Pascal-Stil werden Schlüsselwörter wie Die Blockstruktur wird gelegentlich auch nur durch Einrücken wiedergegeben. Eine Liste häufig verwendeter Schlüsselwörter: Module
Fallunterscheidungen
Schleifen
Kommentare
Definition von Funktionen
Zusicherungen
BeispielePseudocode im Stil von Pascalprogram Name und Kurzbeschreibung
LiesDatenStruktur
LiesDatenInhalt
...
if DatenUnvollständig then
FehlerMelden
exit
end if
HauptstatistikBerechnen
ZusammenstellungBerechnen
Resultate in HTML-Datei schreiben
end program Name
Pseudocode im Buch Algorithmen – Eine EinführungIm Buch Algorithmen – Eine Einführung[3] (englischer Originaltitel Introduction to Algorithms, übersetzt von Paul Molitor) werden Konventionen für einen Pseudocode definiert. Dabei werden keine Fehlerbehandlungen und andere Ausnahmen behandelt. Das folgende Beispiel (angelehnt an das erwähnte Buch[3]:18) zeigt den Insertionsort-Algorithmus in dieser Pseudocode-Variante. INSERTION-SORT(A)
for j = 2 to A.länge
schlüssel = A[j]
// Setze A[j] in das sortierte Teilfeld A[1 .. j - 1] ein
i = j - 1
while i > 0 und A[i] > schlüssel
A[i + 1] = A[i]
i = i - 1
A[i + 1] = schlüssel
Es gelten in dieser Pseudocode-Variante folgende Konventionen:
SchleifenEs gibt die drei Schleifenkonstrukte:
while <Bedingung>
<eingerückte Anweisung>*
for <Initialisierung> to|downto <Endebedingung> [by <delta>]
<eingerückte Anweisung>*
Die Laufvariable einer for-Schleife behält ihren Wert auch nach dem Durchlauf der Schleife. Sie enthält dann den Wert des letzten Schleifendurchlaufs. Bei for-Schleifen wird das Schlüsselwort
repeat
<eingerückte Anweisung>*
until <Endebedingung>
VerzweigungenVerzweigungen werden durch if <Bedingung>
<eingerückte Anweisungen im If-Teil>*
[else
<eingerückte Anweisung im Else-Teil>*]
Sonstiges
AlternativenAnstelle von Pseudo-Code können auch Ablaufdiagramme wie das Nassi-Shneiderman-Diagramm, das Jackson-Diagramm oder der normierte Programmablaufplan verwendet werden. Einzelnachweise
|