Die Forderung:
Der Prozessor muss die Darstellung, in der ein
Algorithmus ausgedrckt ist, "verstehen", damit er ihn ausf hren kann.
Dabei knnen Fehler unterschiedlicher Art und auf verschiedenen
Ebenen auftreten.

Syntaxfehler
Ein Programm ist dann syntaktisch fehlerfrei, wenn die in der Sprache
festgelegten Symbole und Regeln richtig angewandt wurden.
program fehlertest.pas ;
begin
writeln ('Alles ok');
end. |
pogram
fehlertest.pas ;
begin
writeln ('Alles ok');
>> Syntax error
<== ( end. fehlt)
|
Semantikfehler
Semantik ist die inhaltliche Bedeutung, die eine
Sprache, ein Satz oder ein Wort hat. Die angewendete Sprache kann
syntaktisch v llig fehlerfrei, aber semantisch falsch sein.
Beispiele:
-
Der Elefant fra die Erdnuss.
-
Die Erdnuss fra den Elefanten.
-
Farblose grne Ideen schlafen wild.
In einem Algorithmus, der sicher v llig fehlerfrei
ausgefhrt w rde, steht
Schreibe den Namen des 1. Monats
im Jahr
Anders bei dieser
Anweisung:
Schreibe den Namen des 13. Monats im Jahr
Wenn der Compiler Kenntnis ber die
Monate hat (z. B. durch einen entsprechenden Typ), w rde eine
Fehlermeldung kommen knnen (z. B. Bereichs berschreitung), sonst kme
Unsinn heraus.
Wenn das nicht so ist, dann w rde
folgender Fehler sicher lange unentdeckt bleiben:
Denke Dir eine Zahl
zwischen 1 und 13 aus
Bezeichne diese Zahl mit N
...
Schreibe den Namen des N-ten Monats im Jahr
Logikfehler
Die Logik bezieht sich auf richtige
Aussagen, Folgerungen, Algorithmen.
Neben Semantikfehlern gehren
Logikfehlern zu denen, die am schwierigsten zu finden sind. Ein Programm
w rde klaglos bis in alle Ewigkeit den Algorithmus ausfhren
Umfang := Radius * Pi
bis es jemandem auffiele, dass dabei
falsche Ergebnisse herauskommen.
Laufzeitfehler
Dieser Fehler tritt erst auf, wenn das Programm syntaktisch
fehlerfrei ist und gestartet wurde. Der Fehler zeigt sich in einem
Programmabsturz mit in der Regel kryptischen Fehlermeldungen.
Ein typischer Laufzeitfehler tritt auf, wenn f r ein bereits
deklariertes Objekt kein Exemplar mit "create" erzeugt wurde. Weitere
Ursachen von Laufzeitfehlern:
- Division durch 0.
- Fehler bei der Konvertierung von Zeichenketten in ganze oder
Gleitkommazahlen.
- Es soll eine Datei geffnet werden, die nicht vorhanden ist.
- Es soll eine Datei angelegt werden und es gibt keine
Schreibberechtigung daf r.
Laufzeitfehler knnen durch eine kluge Ausnahmebehandlung abgefangen
werden.
Pr fung der Korrektheit
Die Prfung der Fehlerfreiheit von
Programmen ist eines der schwierigsten Probleme der Informatik. Es gibt
kein Programm, das sich selbst auf Fehlerfreiheit pr fen kann. Es bleiben
daher im wesentlichen zwei Wege:
| TESTEN |
BEWEISEN |
| mit sinnvollen Testdaten
und Testverfahren
- Praxistest
- Schreibtischtest
anhand der Spezifikation und der Dokumentation |
dass alle
zugelassenen Daten und mglichen Anweisungen richtig sind.
Das d rfte schon bei Programmen mittlerer Gr e wegen des
Aufwandes nicht mehr durchfhrbar sein. |
-------------------
Literatur: Goldschlager/Lister: Informatik. Eine moderne
Einf hrung. Carl Hanser Verlag. |