MINT üben

Einen DEA entwickeln

Vom Variablennamen bis zum Nummernschild — zwei Regeln, die ein Automat aus eigenen Zuständen prüfen soll.

Dein Fortschritt:
0 / 0 Aufgaben
1

Bezeichner im Compiler

14 BEAFB I–II

Der Compiler einer Lernsprache prüft Bezeichner (Namen von Variablen und Methoden) mit einem DEA. Vorher ersetzt er jeden Buchstaben durch b, jede Ziffer durch z und den Unterstrich durch u; es gilt also \(\Sigma=\{b,\,z,\,u\}\). Ein Bezeichner ist gültig, wenn

  • er mit einem Buchstaben beginnt,
  • danach beliebig viele Buchstaben, Ziffern und Unterstriche folgen,
  • nirgends zwei Unterstriche direkt hintereinander stehen und
  • er nicht auf einen Unterstrich endet.
  1. Bestimmen Sie für die Bezeichner zaehler_2, _temp, max__wert, wert_ das Wort über \(\Sigma\) und entscheiden Sie mit Begründung, ob der Bezeichner gültig ist. (4 BE)
  2. Zeichnen Sie den Zustandsgraphen eines DEA, der genau die gültigen Bezeichner akzeptiert. Geben Sie die Bedeutung jedes Zustands an. (6 BE)
  3. Erläutern Sie, wie viele Übergänge Ihr vollständiger Automat hat, und stellen Sie eine möglichst kleine Liste von Testwörtern zusammen, mit der jeder Übergang, der nicht in zF beginnt, mindestens einmal benutzt wird. (4 BE)

Hinweise

Hinweis zu Aufgabe a)
Übersetzen Sie Zeichen für Zeichen. Prüfen Sie dann die vier Regeln nacheinander.
Hinweis zu Aufgabe b)
Was muss sich der Automat merken? „Noch nichts gelesen“, „gültig bis hierher“, „zuletzt ein Unterstrich“. Alles andere ist nicht mehr zu retten.
Hinweis zu Aufgabe c)
\(|Z|\cdot|\Sigma|\) mit zF. Ein Testwort kann mehrere Übergänge abdecken — zählen Sie mit einer Tabelle ab.