11.1.3 Fehlerbehandlung (Error Corrector)



next up previous contents
Next: 11.2 Semantikanalyse Up: 11.1 Syntaxanalyse Previous: 11.1.2 Syntaktische Analyse (Parser)

11.1.3 Fehlerbehandlung (Error Corrector)

Ein wichtiger Aspekt bei der Analyse der Eingabe ist natürlich die Behandlung von Fehlern. Bei Fehlern kann man zwei grundsätzliche Arten unterscheiden:

  1. Fehler, die anhand der Grammatikregeln der vorgegebenen Syntax erkannt werden können.
  2. Fehler, die erst aus den komplexeren Zusammenhängen ersichtlich sind. Einige Beispiele dafür sind:

Die erste Art der Fehler ist bei der Syntaxanalyse erkennbar, und kann zu diesem Zeitpunkt mit geringem Aufwand behandelt werden. Die zweite Art, muß an einer Reihe von Stellen erkannt werden, wie zum Beispiel:

Da in JANAP die Syntaxanalyse bereits tabellengesteuert abläuft, liegt es natürlich nahe, auch die Fehlerbehandlung von Syntaxfehlern tabellengesteuert durchzuführen. Der zur Erstellung der Parser-Tabellen gewählte Generator (ECP) bietet auch die Möglichkeit Tabellen für einen Error-Corrector zu erstellen.

Doch zuerst einmal eine Begriffsbestimmung für Error-Corrector:

Ein Error-Corrector modifiziert eine syntaktisch falsche Eingabe derart, daß die Grammatikregeln für die vorgegebene Eingabesprache erfüllt werden. Dies bedeutet jedoch nicht, daß: Es ist also einzig und alleine ein Mittel, um eine syntaktisch richtige Eingabe zu erhalten, sodaß die Semantik-Routinen einfacher gestaltet werden können (es kann davon ausgegangen werden, daß die Eingabe syntaktisch in Ordnung ist und es müssen keine Sonderfälle behandelt werden).

Der für JANAP verwendete Error-Corrector arbeitet nach dem folgenden Prinzip:

Treten Fehler auf, die von den Semantik-Routinen erkannt werden, so wird eine Fehlermeldung ausgegeben und versucht durch Einsetzen geeigneter - harmloser - Werte einfach weiterzurechnen. Auch in diesem Fall wird natürlich keine Simulation des Netzwerks durchgeführt.



next up previous contents
Next: 11.2 Semantikanalyse Up: 11.1 Syntaxanalyse Previous: 11.1.2 Syntaktische Analyse (Parser)



Martin Stiftinger
Fri Jun 9 19:49:39 MET DST 1995