Begriffe in Programmiersprachen
Ablaufstrukturen
Sprungfunktionen
In maschinennahen Sprachen gibt es neben den Rechenoperationen
das Programm wird nach der Anweisung an einer anderen Stelle fortgesetzt.
Diese gibt es auch in den höheren Programmiersprachen, es ist das berüchtigte
goto.
Der unkontrollierte Einsatz führt zu sog. Spagettiprogrammen, zu deren
Wartung man wirklich Talent braucht, das in den meisten Fällen noch nicht einmal der Autor aufbringt.
Stukturierte Anweisungen
Es haben sich die folgenden Muster entwickelt, die in fast allen neueren prozeduralen und natürlich in den Objektorientierten Sprachen vorhanden sind:
- if bedingung then block else block
- while bedingung block
- do block until bedingung
- for initialisirung ende aktion block
- case Variable wert Block wert Block
Theortisch kann man beweisen, daß alle Spagetti-Programme in aquivalente strukturierte Programme überführt werden können.
Fehlerbehandlung
Eine gute Fehlerbehandlung gehört zu den schwierigen Sachen. Diese mit obigen
mitteln strukturieren zu versuchen macht das ganze auch sehr unübersichtlich.
In solchen Fällen ist manchmal ein verpöntes goto oder ein longjmp (goto aus Funktionenhierarchien heraus) gut.
Man orientiert sich am Hardwaremodell: Wenn ein Fehler auftritt, z.B. Division
durch null, dann ruft die Hardware eine Interrupt-routine auf, die vom Kontext
auf der höhereren Abstraktionsebene bereitgestellt werden kann.
Falls nicht, wird eine voreingestellte genommen.
C++, Java und andere Formalisieren dies mit dem try-catch-Mechanismus, oder Exception-Mechanismus:
class Ausnahme {};
/*...*/
try
{
/* .... */
if(Fehler()) throw Ausnahme();
}
catch(Ausnahme a)
{
cerr << "Na so was ..." << endl;
}
Damit werden die Programme sehr viel verständlicher und die Prozeduren
wiederverwendbarer
Informatik- und Netzwerkverein Ravensburg e.V
Rudolf Weber