Ausprüfen und Prüfung
Syntax-Störungen
Syntax bezieht sich die Grammatik, die Struktur und den auf Auftrag der Elemente in einer Aussage. Eine Syntaxstörung tritt, wenn wir die Richtlinien brechen, wie Vergessen, eine Aussage mit einem Semicolon zu beenden auf. Wenn du das Programm kompilierst, produziert der Compiler eine Liste aller möglicher Syntaxstörungen, die sie antreffen kann.
Ein guter Compiler gibt die Liste mit einer Beschreibung der Störung aus und kann eine mögliche Lösung zur Verfügung stellen. Das Reparieren der Störungen kann die weiteren Störungen ergeben, die angezeigt werden, als recompiled. Der Grund für dieses ist, daß die vorhergehenden Störungen die Struktur der Programmbedeutung änderten, die weitere Störungen während der ursprünglichen Kompilation unterdrückt wurden.
Ähnlich kann ein einzelner Fehler einige Störungen ergeben. Versuchen, einen Semicolon am Ende der Hauptfunktion eines Programms zu setzen, das richtig kompiliert und läuft. Wenn du recompile es, du eine sehr große Liste von Störungen, und doch erhältst, sie ist nur ein verlegter Semicolon.
Sowie Syntaxstörungen können Compiler Warnungen auch herausgeben. Eine Warnung ist nicht eine Störung, aber kann Probleme während der Durchführung deines Programms verursachen. Z.B. kann das Zuweisen einer doppelt genauen Gleitkomma-Zahl einer Einzelnpräzision Gleitkomma-Zahl einen Verlust der Präzision ergeben. Es ist nicht eine Syntaxstörung, aber könnte zu Probleme führen. In diesem bestimmten Beispiel könntest du Absicht zeigen, indem Sie die Variable zur passenden Datenart warfen.
Das folgende Beispiel betrachten, in dem x eine Einzelnpräzision Gleitkomma-Zahl ist, und y eine doppelt genaue Gleitkomma-Zahl ist. y wird ausdrücklich zu einer Hin- und Herbewegung während der Anweisung geworfen, die alle mögliche Compilerwarnungen beseitigen würde.
x = (float)y;
Logik-Störungen
Logikstörungen treten auf, wenn es eine Störung in der Logik gibt. Z.B. könntest du prüfen, daß eine Zahl kleiner als 4 und grösser als 8 ist. Das könnte nicht zutreffend vielleicht überhaupt sein, aber, wenn es syntaktisch korrekt ist, kompiliert das Programm erfolgreich. Das folgende Beispiel betrachten:
if (x < 4 && x > 8)
puts("Will never happen!");
Die Syntax ist korrekt, also kompiliert das Programm, aber Ablegeanweisung wird nie gedruckt, da der Wert von x nicht kleiner als vier und grösser als acht vielleicht gleichzeitig sein könnte.
Die meisten Logikstörungen werden durch die Ausgangsprüfung des Programms entdeckt. Wenn es sich nicht benimmt, wie du erwartetest, kontrollierst du die logischen Aussagen genauer und behebst sie. Dies gilt für offensichtliche logische Störungen nur. Das größer das Programm, mehr sind die Wege dort durch es, wird es das schwieriger, um zu überprüfen, daß das Programm sich benimmt, wie erwartet.
|