[an error occurred while processing this directive]

Erklärung von Compiler-Fehlermeldungen im Rahmen der Lehre des Programmierens. (Compiler, Fehlermeldung, Fehlermeldungen, Fehler), Lektion, Seite 720701
http://www.purl.org/stefan_ram/pub/formal_fehlermeldungen_de ist die kanonische URI dieser Seite.
Stefan-Ram-Startseite

Übersetzer-Meldungen

Einige Übersetzer geben keine Meldungen aus, wenn ein Programm richtig übersetzt wurde. Das Fehlen von Meldungen nach Aufruf eines Übersetzers darf also nicht als Fehler interpretiert werden.

Wenn ein Übersetzer einen Fehler entdeckt, dann gibt er meistens eine Meldung aus.

Meldungskaskaden

Es kann passieren, daß ein einziges falsches Zeichen in einer Übersetzungseinheit eine ganze Lawine von Fehlermeldungen auslöst, weil der Übersetzer dadurch aus dem Tritt gerät und die ganze Einheit nicht mehr richtig verstehen kann. Eine lange Liste von Fehlermeldungen ist oft nicht so schlimm, wie sie aussieht, weil die Korrektur der Ursache der ersten Fehlermeldung oft gleich auch mehrere der nachfolgenden Fehlermeldungen erledigt. Weil es daher oft überflüssig ist, weitere Fehlermeldungen noch zu bearbeiten ergibt sich eine Regel für den Umgang mit Fehlermeldungskaskaden.

Von mehreren Fehlermeldungen ist zunächst nur die erste zu bearbeiten, danach wird ein weiterer Übersetzungsversuch gestartet.

Anzeige der Fehler

Zur Fehlerkorrektur beachte man, daß der Übersetzer die Zeilennummer und Stelle anzeigt, an der er ein Problem bemerkt und dabei auch angibt, um welches Problem es sich handelt. Doch tatsächlich kann die Ursache dafür auch irgendwo vor der Stelle liegen, an der das Problem bemerkt wurde.

Die Fehlermeldungen erscheinen bei einigen Übersetzern nur in englischer Sprache. Auch wer kein Englisch versteht, kann aber anhand der oft vorkommenden Zitate aus der Übersetzungseinheit ahnen, worum es geht. Doch selbst bei bestem Verständnis von Fehlermeldungen gilt: Eine Fehlermeldung darf nicht immer wörtlich und für wahr genommen werden, sie ist nur der Versuch eines Übersetzers, einen Fehler zu beschreiben. Manchmal liegt der Fehler aus der Sicht des Programmierers aber an einer anderen Stelle. Der Übersetzer kann ja bei einem Fehler nicht wissen, was der Programmierer eigentlich sagen wollte. Daher sollte man, wenn man einen Fehler nicht finden kann, auch an anderen Stellen suchen, als der vom Compiler angezeigten und kommentierten oder der vom Programmierer vermuteten Stelle. Ein Programmierer, der nach einem Fehler sucht, ist manchmal verblendet von einem Vorurteil darüber, wo der Fehler steckt, während der Fehler in Wirklichkeit ganz woanders liegt. Deswegen gilt die goldene Regel der Fehlersuche:

Wenn der Fehler nicht da ist, wo man ihn sucht, dann ist er woanders.

Fehler und Warnungen

Ein Übersetzer erzeugt Fehlermeldungen und Warnungsmeldungen.

Eine Warnungsmeldung weist auf Probleme hin, die aber nicht so schwerwiegend sind, daß die Übersetzung ihretwegen abgebrochen werden muß. Warnungen werden manchmal auch erzeugt, um auf Formulierungen im Quellcode hinzuweisen, die zwar vollkommen korrekt sind, aber manchmal von Anfängern falsch eingesetzt werden. Der Programmierer sollte also zunächst versuchen, eine Warnungsmeldung zu verstehen. Dann kann er entweder die Ursache beheben oder die Warnungsmeldung ignorieren, wenn er sich sicher ist, daß der Programmteil, auf den sich die Warnung bezieht, so wirklich beabsichtigt ist.

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz