Wikipedia · einfach zusammengefasst · Stand
Anweisung (Programmierung)
Anweisungen sind üblicherweise Zuweisungen, Kontrollanweisungen (wie Sprünge, Schleifen und bedingte Anweisungen) und Prozeduraufrufe. Abhängig von der …
Inhalt4 Abschnitte
Begriff und Bedeutung
Eine Anweisung, auch Statement genannt, ist ein zentrales Element vieler imperativer Programmiersprachen. Ein Programm dieser Sprachen besteht hauptsächlich aus einer oder mehreren Anweisungen. Jede Anweisung ist eine einzelne, in der Syntax der jeweiligen Programmiersprache formulierte Vorschrift, die bei der Abarbeitung des Programms ausgeführt wird.
Wie eine Anweisung geschrieben werden muss, legt die Programmiersprache oder ihre Spezifikation fest; dies ist innerhalb eines Programms üblicherweise nicht veränderbar. In maschinennaher Programmierung heißen Anweisungen häufig auch Befehl, Instruktion oder Kommando.
Typische Anweisungen sind Zuweisungen, Kontrollanweisungen und Prozeduraufrufe. Kontrollanweisungen steuern den Ablauf, etwa durch Sprünge, Schleifen oder bedingte Anweisungen. Je nach Sprache können auch Zusicherungen, Deklarationen sowie Klassen- und Funktionsdefinitionen als Anweisungen gelten. Mehrere Anweisungen werden häufig zu einem Block zusammengefasst.
Anweisungen und Ausdrücke
Im Unterschied zu Ausdrücken haben Anweisungen nicht immer einen Wert. Ein Ausdruck ist eine Programmeinheit, die beispielsweise einen Vergleich oder eine arithmetische Berechnung formuliert. Viele Ausdruckstypen sind keine syntaktisch vollständigen Anweisungen.
Einige Anweisungen können zugleich Ausdrücke sein. Dazu gehören beispielsweise Zuweisungen, Inkrementoperatoren und Funktionsaufrufe. Damit hängt die Einordnung auch von den Regeln der jeweiligen Programmiersprache ab.
Typische Formen
Eine Zuweisung verändert oder setzt einen Wert, zum Beispiel A := A + 1;. Eine Deklaration legt etwa eine Variable fest: VAR A:INTEGER;. Eine Initialisierung kann einen Ausgangswert setzen, etwa long i = 0;.
Bedingte Anweisungen wählen abhängig von einer Bedingung einen Ablauf, beispielsweise if A > 3 then WRITELN(A) else WRITELN("NOT YET") end. Schleifen führen Anweisungen wiederholt aus, etwa while NOT EOF DO begin READLN end;, do computation(&i); while (i < 10); oder for A:=1 to 10 do WRITELN(A) end;.
Weitere Beispiele sind ein Sprung mit goto 1;, die Rückgabe eines Werts mit return 5;, eine Fallunterscheidung mit switch (c) { case 'a': alert(); break; case 'q': quit(); break; } und ein Unterprogrammaufruf wie CLEARSCREEN();. Ein Block kann mehrere Anweisungen bündeln, etwa begin WRITE('Number? '); READLN(NUMBER); end. Eine Assembler-Anweisung ist beispielsweise MOV AX,BX.
Syntax und Bedeutung bei der Ausführung
Das Erscheinungsbild eines Programms wird stark durch seine Anweisungen geprägt. Deshalb werden Programmiersprachen oft nach der Art ihrer Anweisungen unterschieden, zum Beispiel als Sprachen mit geschweiften Klammern. Viele Anweisungen beginnen mit Bezeichnern wie if, while oder repeat. Solche Schlüsselwörter sind oft reserviert und dürfen dann nicht als Namen von Variablen oder Funktionen verwendet werden.
Imperative Programmiersprachen verwenden meist eine besondere Syntax für Anweisungen, die sich deutlich von einem Funktionsaufruf unterscheidet. Die Syntax kann unter anderem mit der Backus-Naur-Form oder einem Syntaxdiagramm beschrieben werden.
Semantisch, also hinsichtlich ihrer Bedeutung bei der Ausführung, unterscheiden sich viele Anweisungen von Unterprogrammen durch die Behandlung ihrer Parameter. Bei einem Unterprogramm wird ein tatsächlicher Parameter normalerweise vor dem Aufruf ausgewertet. Parameter vieler Anweisungen werden dagegen mehrfach ausgewertet, etwa die Bedingung einer while-Schleife, oder gar nicht, etwa der Rumpf einer while-Schleife. Technisch sind solche Anweisungsparameter Closures, die bei Bedarf ausgeführt werden. Gibt es Closure-Parameter für Unterprogramme, kann das Verhalten einer Anweisung durch Unterprogramme umgesetzt werden, wie bei Lisp. Ohne Closure-Parameter kann eine Sprache Schleifen oder bedingte Anweisungen semantisch nicht vollständig durch ihre eigenen Mittel beschreiben; Spezifikationen verwenden dafür daher oft natürliche Sprache.