OSZ Handel I
Informatik

Programmierung
Fehler in Programmen

S. Spolwig
J. Penon

[Home | Wirtschaftsgymnasium | Informatik | Unterrichtsmaterialien]

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.



 15. Februar 2006     Siegfried Spolwig und Johann Penon

page_top