© TRAC Optische Computer Sensorik, Stuttgart 2002, em@il: trac@n.zgs.de


Inhalt

  1. Kommunizieren mit Automaten

  2. Benutzerschnittstellen

  3. Automaten und formale Sprachen

  4. Endliche Automaten

    1. Das Drehkreuz

    2. Das Zahlenschloss

    3. Addierer für einstellige Dualzahlen

Kommunizieren mit Automaten

Benutzerschnittstellen

Eine wichtige Komponente vieler Programme ist die Benutzerschnittstelle. Über diese Schnittstelle kann der Anwender Daten eingeben und Resultate ablesen.

Das natürliche Kommunikationsmedium der Menschen ist die Sprache. Aus technischen Gründen ist jedoch heute noch keine Kommunikation mit Programmen in natürlicher Sprache möglich - moderne Spracherkennungssysteme kombiniert mit KI - Systemen könnten dies in naher Zukunft jedoch ändern.

Gegenwärtig können wir wir mit den Computerprogrammen über Befehlszeilen, Eingabedateien, Bildschirmmasken oder mausgesteuerten Fenstersysteme wie das von MS-Windows kommunizieren. Die programmtechnische Realisierung dieser Schnittstellen erweist sich als äußerst anspruchsvoll. So müssen Benutzerschnittstellen:

Die Gestaltung der Benutzerschnittstelle hat maßgeblichen Einfluß auf den Erfolg eines Softwaresystems. Im Internet kann man viele Softwareperlen zum Nulltarif downloaden. Ihr oft einziger Makel, der ihnen einen Erfolg am Markt verwehrt, sind ihre Benutzerschnittstellen. Meist handelt es sich um kryptische Befehlszeilen analog der von MS- DOS, einem veralteten Konzept aus der Computersteinzeit.

Automaten und formale Sprachen

Wenn der Anwender Eingaben an der Benutzerschnittstelle tätigt, dann kann dies als »Unterhaltung« zwischen Benutzer und Programm in einer Spezialsprache betrachtet werden. Dabei beschreibt der Anwender Aufgabenstellungen in der Spezialsprache, das Computerprogramm analysiert die Aufgabenstellung, berechnet eine Lösung und formuliert diese in der Spezialsprache für die Ausgabe an den Benutzer.

Diese Spezialsprachen können aus bestimmten Folgen von Mausklicks, Befehlswörtern oder Datensätzen bestehen. Sie haben eine einfache Grammatik, die wiederum von einfach konstruierten Maschinen, den Automaten beherrscht wird. In der Informatik und Linguistik werden diese Spezialsprachen als Formale Sprachen bezeichnet.

Der Automat nimmt die Eingaben entgegen und prüft, ob sie grammatikalisch richtig aufgebaut sind. Ist dies nicht der Fall, dann weist er die Eingabe mit einer Fehlermeldung an den Benutzer zurück. Korrekte Eingaben bewirken, daß der Automat die gewünschte Funktion der Software mit den vom Anwender übergebenen Parametern aufruft. Automaten sind damit das »Herzstück« einer Benutzerschnittstelle.

Im Folgenden werden wir den Aufbau und die Wirkungsweise der für die altägliche Programmierpraxis wichtigsten Automaten kennenlernen.

Endliche Automaten

Als endlicher Automate (engl. Finite State Machines) wird eine Automatenklasse mit folgendem Aufbau bezeichnet:

Anhand einiger Beispiele wollen wir die abstrakte Automatendefinition mit Leben füllen.

Das Drehkreuz

Ein Ort, an dem endliche Automaten lauern, ist das Freibad der Stadt Fellbach. Der Zutritt wird durch ein Drehkreuz gesichert. Dieses läßt den Badegast nur dann passieren, wenn er zuvor eine Magnetkarte einwirft, die man für 5 DM kaufen muß. Hat man das Drehkreuz passiert, dann blockiert dieses wieder und gewährt nur dann weiteren Zutritt, wenn eine weitere Magnetkarte für 5 DM eingeworfen wird.

Das habgierige Drehkreuz ist ein endlicher Automat mit den zwei Zuständen »zu« und »auf«. Ich stelle ihn durch einen Graphen dar, ein übliches Verfahren für endliche Automaten. Die Zustände sind durch Kreise dargestellt. Pfeile zwischen den Kreisen bezeichnen die Zustandsüberführungsfunktionen. Sie sind mit den Eingabesymbolen bezeichnet, die diese Zustnandsübergänge auslösen. Die Ausgabe an jedem Zustand ist viereckig umrahmt.



Das Zahlenschloss




Addierer für einstellige Dualzahlen