System zur Simulation mathematischer Maschinen 

Dokumentation

(zusammengestellt aus der Hilfe zum Programm)


1.0 Einleitung

Für die Lehre im Fach "Automaten und Formale Sprachen" habe ich eine Software erstellt, die mathematische Maschinen bzw. Formalismen simuliert. Das Programm verdeutlicht die Funktionsweise von Algorithmen und Automaten.
Weitere Informationen zu Quellangaben des Programm

1.1 Das Produkt unterstützt folgende Formalismen:

Meine Software besitzt eine einheitliche Bedieneroberfläche, die ein effizientes Arbeiten mit den unterschiedlichen Algorithmenformalisierungen gestattet.

1.2 Grundfunktionen der Software sind:


1.3 Voraussetzungen, um die Software zu nutzen, wären:

Damit der Umgang mit der Software schneller erlernt werden kann, haben ich ein paar kleine Algorithmen mit Bändern mitgeliefert

2.0.0 Der Programmteil Wahl-Menu

2.0.1 Das Auswahl - Menu

In diesem Programmteil können die Unterpunkte des Automaten- Programms angewählt werden und einige kleine Tools.

Benutzt werden können folgende Tasten.

Grafik Wahlmenu Endlicher Automat
Grafik Wahlmenu Keller Automat
Grafik Wahlmenu Turing Maschine

2.0.1 Informationen zu den Automaten

In diesem Programmteil kann man  sich grundlegnede Informationen zum Automat ansehen. In ein paar kurzen Worten wird  der Automat und seine Funktionsweise dargestellt.

Folgende Tasten sind in diesem Programmteil belegt:

Informationen zum Endlichen Automaten
Informationen zum Keller Automaten
Informationen zur Turing Maschine

2.0.3 Allgemeine Programminformation

Dieser  Programmteil  dient  nur zur Information über's allgemeine zum Programm. Drücke ESC, um wieder in die Entwicklungsumgebung zu gelangen. Mit F5  schaltest du den Bildschirmschoner ein. Wer hat das Programm geschrieben und so weiter...
Grafik Allgemeine Programm Informationen


2.0.4 Das Setup

In diesem Programmteil können Optionen für das Programm festgelegt werden. Mit den Tasten UP und DOWN kannst du die einzelnen Optionen anwählen, mit Left und Right kannst du die Optionen umschalten, sowie mit Enter, nur mit Enter werden die Optionen durchlaufen. Beachte, daß für manche Automaten verschiedene Optionen nicht möglich sind. Bei dem Menupunkt Setup-Übernehmen und beenden wird die eingestellte Optionskonfiguration in  der Datei 'Automat.Knf' im gleichen Pfad gespeichert. Bei dem Menupunkt Verwerfen, wird die vorhergehende Optionskonfiguration wieder geladen. Beachte, daß beim Umstellen des Automaten, automatisch die Namen bei AutoLoad = ON umgestellt werden, und es zu Fehlern am Anfang kommen kann (Datei nichtgefunden). Wird ein Automat neu übernommen, werden Band und Tabelle gelöscht.

Folgende Tasten sind in diesem Programmteil belegt:

Grafik Setup Endlicher Automat
Grafik Setup Endlicher Automat
Grafik Setup Endlicher Automat

2.1.0 Laden und Speichern

Das Laden bzw. Speichern von Bändern und Tabellen wird getrennt behandelt. Dadurch besteht die Freiheit, daß beispielsweise eine Tabelle und mehrere Bänder gespeichert werden können. Die Dateien werden beim Laden bzw beim Speichern gefiltert, dh. daß ein Band für den Keller Automaten, wird bei den Bändern der Turing Maschine nicht auftaucht. Gefiltert wird automatisch mit dem Anfangsbuchstaben u, v und w. Wobei das "u" für die Tabellen bzw. Bänder der Endlichen Automaten steht, das "v" für Keller Automaten und das "w" für Turing Maschinen. Somit wird auch klar, warum die Namen für Bänder und Tabellen nur auf sieben Zeichen begrenzt ist. Die Endungen der Dateien unterscheiden die Dateien in Bänder und Tabellen. Ein Band hat die Endung "bnd". Eine Tabelle hat die Endung "tab".

2.1.1  Laden einer Tabelle

In  diesem  Programmteil  kannst du dir eine Tabelle laden. Mit den Cursortasten können die einzelnen Dateien angewählt werden. Bei jeder Anwahl  werden die allgemeinen Informationen zur  Datei und  der Texteintrag angezeigt (falls was eingetragen  wurde). Es  bietet  sich  also  an, beim Abspeichern Informationen zum Algorithmus einzutragen. Bei ESC wird die Datei nicht geladen. Es werden maximal 100 Dateien angezeigt.

Folgende Tasten sind in diesem Programmteil belegt:

 
Grafik "Laden Einer Tabelle" - Endlicher Automat  (Bsp. Parität      laden) 
Grafik "Laden Einer Tabelle" - Keller Automat  (Bsp. a^n b^n   laden) 
Grafik "Laden Einer Tabelle" - Turing Maschine  (Bsp. Klammer laden) 

2.1.2 Laden eines Bandes

In diesem Programmteil kannst du dir ein Band laden. Mit den Cursortasten können die  einzelnen Dateien angewählt werden. Bei jeder Anwahl werden die allgemeinen Informationen zu  der Datei und der Texteintrag angezeigt (falls was eingetragen wurde). Es bietet sich an, beim  Abspeichern Informationen zum Band einzutragen. Mit der Enter- Taste wird  die  Datei geladen. Bei ESC  wird die Datei nicht geladen. Es werden maximal 100 Dateien angezeigt.

Folgende Tasten sind in diesem Programmteil belegt:

 
Grafik "Laden Eines Bandes" - Endlicher Automat  (Bsp. Parität      laden) 
Grafik "Laden Eines Bandes" - Keller Automat  (Bsp. a^n b^n   laden) 
Grafik "Laden Eines Bandes" - Turing Maschine  (Bsp. Klammer laden) 

2.1.3 Erläuterungstexteingabe vor dem Speichern

Gespeichert  werden  78 Zeichen je Zeile. Es können maximal fünf Zeilen belegt werden. Bei Betätigung der Enter-Taste springt der Cursor ins Dateinamensfeld, hier muß dann der Dateiname angegeben werden. Falls die Enter-Taste aus Versehen  betätigt wurde, drücke die ESC-Taste, und rufe das SaveMenu erneut auf (der Text bleibt erhalten). Gibt's noch Probleme mit  dem Datei- Saven, dann betätige die Enter-Taste  nach Verlassen der Hilfe und drücke dann <F1> erneut.

Folgende Tasten sind in diesem Programmteil belegt:

 
Grafik Speichern "Eines Bandes"   "Einer Tabelle" - Endlicher Automat  (Bsp. Parität      laden) 
Grafik Speichern "Eines Bandes"   "Einer Tabelle" - Keller Automat  (Bsp. a^n b^n   laden) 
Grafik Speichern "Eines Bandes"   "Einer Tabelle" - Turing Maschine  (Bsp. Klammer laden) 

2.1.4 Save Dateiname

Gib  hier einen  Dateinamen mit 7 Buchstaben an. Nach jedem  eingegebenen  Buchstaben wird die Information zu der dazu  gefundenen Datei angezeigt. Sollte die Datei '--------.---'  heißen, dann gibt es diese Datei noch nicht in diesem Pfad. Sollten  Probleme beim Abspeichern der Datei auftreten, dann kann man im Hauptmenu mit F10 die DOS - Eingabeaufforderung Aufrufen. Nun kann man z.B. das Laufwerk wechseln oder der Datei ein anderes Attribut zuweisen. Wenn du dann wieder ins Programm zurück willst mußt du dann EXIT eingeben. Es erscheint nun normalerweise wieder die Hauptmenuoberfläche jetzt kann man erneut probieren, seine Dateien zu retten (alle Daten müßten normalerweise erhalten bleiben).

In diesem Programmteil stehen dir folgende Tasten zur Verfügung:

Beispiel Grafiken 

2.2.0 Bearbeiten von Tabellen und Bändern

In diesem Abschnitt wird gezeigt, wie man die Bänder und Tabellen für die Automaten erstellen kann. Die Bedienung im Programm geschieht ausschließlich mit der Tastatur. Die Tastatur-Belegung ist orientiert am Norton Commander. Die Tabellen Editierung ist ein wenig gewöhnungsbedürftig.

2.2.1 Aufnahmestudio für Automaten-Bänder

In diesem Programmteil wird das Eingabeband für den jeweiligen Automaten bespielt. Erlaubt sind maximal 80 Zeichen je Zeile. Es können maximal 10 Zeilen belegt werden. Als Buchstaben sind 'A-Z', '0-9','()[]{} +*/: ?!. #% |& $' zugelassen.

In diesem Programmteil sind weiterhin folgende Tasten belegt:

 
Grafik Bearbeitung "Eines Bandes"  - Endlicher Automat  (Bsp. Parität  Band) 
Grafik Bearbeitung "Eines Bandes"  - Keller Automat  (Bsp. a^n b^n  Band) 
Grafik Bearbeitung "Eines Bandes"  - Turing Maschine  (Bsp. Klammer Band) 



2.2.2  Tabellen - Eingabe für den endlichen Automaten

Es sind maximal 1000 Zeilen bzw. Zustände erlaubt (0-999), wird der Zustand 'H' (Halt) genannt, dann hält das Programm in diesem Zustand. Für einen Strich ('-') im Nachzustand wird der Vorzustand beibehalten. Für die Ein- und Augabebuchstaben sind folgende Zeichen zugelassen: 'A-Z', '0-9' und die Sonderzeichen: '()[]{} +*/: ?!. #% |& $'. Bei Eingabe eines Strichs ('-') für den Ausgabebuchstaben erfolgen keine Ausgabe eines Zeichens für den Automaten.

Folgende Tasten sind in diesem Programmteil belegt:

Grafik Tabellen Eingabe Endlicher Automat

2.2.3 Tabellen - Eingabe für den Keller Automaten

Es sind maximal 1000 Zeilen bzw. Zustände erlaubt (0-999). Für einen Strich ('-') im Nachzustand wird der Vorzustand beibehalten. Für die Eingabe- und Topbuchstaben sind folgende Zeichen zugelassen: 'A-Z', '0-9' und Sonderzeichen: '()[]{} +*/: ?!. #% |& $'. Bei Eingabe eines Strichs ('-') für den Top- oder Eingabebuchstaben, ist der Buchstabe egal. Der Top of Stack wir mit 'Str'+'T' gekennzeichnet(''). Für die Aktion ist folgendes vorgesehen: 'U'=Push, 'O'=POP, 'E'=ERROR, 'A'=ACC, '-'&'N'= nur Zustandsänderung, 'P'=abwechselnt POP&PUSH, bei der Einstellung PUSH gibt es die Möglichkeit einen PUSH- Buchstaben anzugeben, aus der Menge der EingabeBuchstaben. Bei 'ERROR' & 'ACC' wird der Algorithmus im Debugger angehalten.

Folgende Tasten sind in diesem Programmteil belegt:

Grafik Tabellen Eingabe Keller Automat

2.2.4 Tabellen-Eingabe für die Turing-Maschine

Es sind maximal 1000 Zeilen bzw. Zustände erlaubt (0-999), wird der Zustand 'H' (Halt) genannt, dann hält das Programm in diesem Zustand. Für einen Strich ('-') im Nachzustand wird der Vorzustand beibehalten. Für Buchstaben sind folgende Zeichen zugelassen: 'A-Z', '0-9', Sonderzeichen: '()[]{} +*/: ?!. #% |& $'. Bei Eingabe eines Strichs ('-') wird das Zeichen kopiert und je nach Option dargestellt (- bzw Bchst). Die Richtung kann mit 'L'- (links) und 'R' (rechts) angegeben werden. Bei Strich ('-') bleibt der LeseKopf stehen.

Folgende Tasten sind in diesem Programmteil belegt:

Grafik Tabellen Eingabe Turing Maschine

2.3.0 Interpretieren und Debuggen

In diesem Programmteil können die Algorithmen (Tabellen) getestet werden. Mit diesem Programmteil kann man die Algorithmen Interpretieren und Debuggen ohne die Oberfläche zu verlassen. Mit Short Keys (nur einem Tastendruck) kann man gleich die Tabelle und das Band umändern und die Testphase kann schon wieder weiter gehen. Wenn man nichts zu Laden oder zu Speichern hat, sollte man am besten alle Veränderungen von diesem Menupunkt aus machen.

2.3.1 Interpreter für den Endlichen Automaten

In diesem Programmteil wird dein erstellter Algorithmus und das dazugehörige Band interpretiert. Mit den Tasten Up & Down kannst du im Menu wählen. Die angewählen Menupunkte können dann mit den Tasten, die unterhalb des Menus stehen, gesteuert werden. Man beachte unter dem Menupunkt Verzögerung kann eine Zeit von MIN eingetragen werden (bis ganz links gehen). In diesem Modus erfolgt keine Bildausgabe, dadurch kann der Algorithmus schnell durchgearbeitet werden.

In diesem Programmteil sind weiterhin folgende Tasten belegt:

Grafik Interpreter Endlicher Automat

2.3.2 Interpreter für den Keller Automaten

In diesem Programmteil wird dein erstellter Algorithmus und das dazugehörige Band interpretiert. Mit den Tasten Up & Down kannst du im Menu wählen. Die angewählen Menupunkte können dann mit den Tasten, die unterhalb des Menus stehen, gesteuert werden. Man beachte unter dem Menupunkt Verzögerung kann eine Zeit von MIN  eingetragen werden (bis ganz links gehen). In diesem Modus erfolgt keine Bildausgabe, dadurch kann der Algorithmus schnell durchgearbeitet werden.

In diesem Programmteil sind weiterhin folgende Tasten belegt:

Grafik Interpreter Keller Automat

2.3.3 Interpreter für die Turing Maschine

In diesem Programmteil wird dein erstellter Algorithmus und das dazugehörige Band interpretiert. Mit den Tasten Up & Down kannst du im Menu wählen. Die angewählen Menupunkte können dann mit den Tasten, die unterhalb des Menus stehen, gesteuert werden. Man beachte unter dem Menupunkt Verzögerung kann eine Zeit von MIN eingeschaltet werden (bis ganz links gehen). In diesem Modus erfolgt keine Bildschirmausgabe während der Ausführung, dadurch kann der Algorithmus schneller durchgearbeitet werden.

 In diesem Programmteil sind weiterhin folgende Tasten belegt:

Grafik Interpreter Keller Automat 
System zur Simulation mathematischer Maschinen