2016-06-23 9 views
0

Gesetzt I-Modul schreiben möchten e einfachen String-Ausdruck wie "5+3", "(7*8/2)/6" etc zu bewerten ... Der Prozess, den ich denke, ist:Art des Fehlers bei der Expression Auswertung von Prozess

  1. lexikalische Analyse, um um die Zeichenfolge in eine Menge von Atomen zu konvertieren (Zahlen und Operation).
  2. Konvertieren des Satzes von Atomen von infix zu postfix
  3. Auswerten der Postfix und Ausgang das Endergebnis

Meine Frage über die Fehler, die in jeder Stufe passiert:

  1. In der ersten Stufe Ich sollte mit undefinierten Symbolen oder einer leeren Zeichenfolge umgehen und sie als lexikalische Fehler bezeichnen. Ist das richtig? etwas hinzuzufügen?
  2. In der zweiten Stufe ist etwas wie zwei Konsequenz Multiplikationen Symbol (*) eine nicht gültige Sache. Wie heißt dieser Fehler?
  3. In der dritten Stufe ist Division durch Null ein Beispiel für einen Fehler. Wie werden diese Art von Fehlern bezeichnet?
+0

Das klingt wie Hausaufgaben. – melpomene

+0

(1) Klingt richtig, obwohl sie auch Syntaxfehler sein könnten. (2) Syntaxfehler: Gültige Syntax hat nicht "**" als gültigen Operator oder Folge von Operatoren. (3) Laufzeitfehler. –

+0

@melpomene Absolut nicht, ich habe gerade angefangen, mich für das Design von Compilern zu interessieren und begann hier und da Artikel zu lesen. Übrigens, ich habe dieses Fach an der Universität studiert und bin mir sicher, dass ich diese Frage beantworten konnte, aber jetzt kann ich mich fast an nichts mehr erinnern. –

Antwort

1
  1. lexikalische Fehler klingt richtig, obwohl sie auch Syntaxfehler sein könnte.
  2. Syntaxfehler: gültige Syntax hat ** nicht als gültigen Operator oder Operatorsequenz.
  3. Laufzeitfehler oder manchmal semantische Fehler.
Verwandte Themen