Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| kurse:ef05a-2021:turingmaschinen:tm-doc [2021/08/17 08:50] – [Syntax] Ivo Blöchliger | kurse:ef05a-2021:turingmaschinen:tm-doc [2021/08/20 08:03] (current) – [Beispiele] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Beispiele ====== | ||
| + | <code txt unaryplusone.txt> | ||
| + | #tape 1111 | ||
| + | # Addiert 1 zu einer unären zahl | ||
| + | # Die Maschine stoppt am Anfang der Zahl. | ||
| + | |||
| + | |||
| + | # Vorwärts bis zum ersten . Schreibe dort eine 1, gehe nach links und mache fertig | ||
| + | start | ||
| + | . 1 L fertig | ||
| + | |||
| + | # Rückwärts bis zum ersten . Dann rechts und stop. | ||
| + | fertig L | ||
| + | . . R stop | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | <code txt bla.txt> | ||
| + | # Schreibt bla ;-) | ||
| + | |||
| + | # {...} Beinhaltet Kommandos der Form Px, um den Buchstaben x zu schreiben, oder R,L, um den Kopf zu bewegen. | ||
| + | # Damit werden eine ganze Reihe von Zuständen generiert. | ||
| + | start | ||
| + | . {Pb R Pl R Pa L L} stop | ||
| + | |||
| + | </ | ||
| + | ===== Spezifikation (sort of) ===== | ||
| + | ==== Spezialzeichen ==== | ||
| + | Folgende Zeichen dürfen nicht als Symbole auf dem Band verwendet werden: | ||
| + | * Leerzeichen (Trennsymbol) | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * ''#'' | ||
| + | ==== Syntax ==== | ||
| + | === Kommentare und Band-Definition === | ||
| + | |||
| + | * Zeilen, die mit # beginnen sind Kommentar, ausser nach ''# | ||
| + | |||
| + | === Zustände === | ||
| + | |||
| + | * Die Zustände sind durch eine Leerzeile getrennt. | ||
| + | * Der default ist das Zeichen lassen und nach rechts gehen. Die default-Richtung kann nach dem Zustandsnamen angegeben werden. Danach kann zusätzlich ein default-Zustand angegeben werden (wenn von diesem verschieden). | ||
| + | * Für ein Zeichen '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Es ist möglich, für '' | ||
| + | * Wird für '' | ||
| + | |||
| + | === m-Funktionen === | ||
| + | * Header: '' | ||
| + | * wobei x die Anzahl der zu übergebenden Symbole als Argumente ist und | ||
| + | * y die Anzahl der zu übergebenden Zustände ist. | ||
| + | * Body: Menge von lokalen Zustandsdefinitionen. Diese können '' | ||
| + | * Die Zustände sollten global eindeutige Namen haben (ausser Sie werden nur lokal in der m-Funktion verwendet). | ||
| + | * Typischerweise wird ein Zustand übergeben, zu dem die Funktion «zurückkehren» soll, wenn sie fertig ist. | ||
| + | * Footer: '' | ||
| + | |||
| + | |||
| + | {{kurse: | ||