Algorithmen und Datenstrukturen - Maschinenmodelle -

Ähnliche Dokumente
Algorithmen und Datenstrukturen 1 Kapitel 4.2

Formale Systeme, Automaten, Prozesse SS 2010 Musterlösung - Übung 2 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder

S 1. Definition: Ein endlicher Automat ist ein 5-Tupel. Das endliche Eingabealphabet

Automaten und formale Sprachen Notizen zu den Folien

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kurzer Einschub: das Schubfachprinzip.

Übungsblatt 1. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Frank Heitmann 2/71. 1 Betrachten wir Σ für ein Alphabet Σ, so ist Σ die Menge

DEA1 Deterministische Version

Lösung zur Klausur. Grundlagen der Theoretischen Informatik. 1. Zeigen Sie, dass die folgende Sprache regulär ist: w {a, b} w a w b 0 (mod 3) }.

Umwandlung von endlichen Automaten in reguläre Ausdrücke

Berechenbarkeitstheorie 2. Vorlesung

Was nicht bewertet werden soll, streichen Sie bitte durch. Werden Täuschungsversuche beobachtet, so wird die Präsenzübung mit 0 Punkten bewertet.

Automaten und formale Sprachen Notizen zu den Folien

Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten)

dem Verfahren aus dem Beweis zu Satz 2.20 erhalten wir zunächst die folgenden beiden ε-ndeas für die Sprachen {a} {b} und {ε} {a} +

Algorithmen und Datenstrukturen 1 Kapitel 4.1

FORMALE SYSTEME. Kleene s Theorem. Wiederholung: Reguläre Ausdrücke. 7. Vorlesung: Reguläre Ausdrücke. TU Dresden, 2.

Einführung in die Theoretische Informatik

Klausur zur Vorlesung Grundbegriffe der Informatik 10. März 2009 mit Lösungsvorschlägen

Mitschrift Repetitorium Theoretische Informatik und Logik

Deterministische endliche Automaten

mathematik und informatik

a q 0 q 1 a M q 1 q 3 q 2

Automaten, Spiele, und Logik

Automaten und formale Sprachen Notizen zu den Folien

Endliche Automaten können wahlweise graphisch oder tabellarisch angegeben werden.

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Name... Matrikel-Nr... Studiengang...

Mächtigkeit von WHILE-Programmen

Inhalt. Endliche Automaten. Automaten und Formale Sprachen. Franz Binder. Endliche Automaten. Deterministische Automaten

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt Semester ARBEITSBLATT 14 MULTIPLIKATION EINES VEKTORS MIT EINEM SKALAR

Franz Binder. Vorlesung im 2006W

Übungsblatt Nr. 1. Lösungsvorschlag

6. Quadratische Gleichungen

Theoretische Informatik und Logik Übungsblatt 2 (2013S) Lösung

4. Lineare Gleichungen mit einer Variablen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Sprachen. Grammatiken (Einführung)

6. Übungsblatt. (i) Von welchem Typ ist die Grammatik G? Begründen Sie Ihre Antwort kurz.

Einführung in die Theoretische Informatik

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

vollständig (Vervollständigung) deterministisch, DFA (Potenzmengenkonstruktion) Minimalautomat: minimaler vollständiger DFA

Endliche Automaten. Stoyan Mutafchiev. Programming Systems Lab, Universität des Saarlandes, Saarbrücken

Ungleichungen. Jan Pöschko. 28. Mai Einführung

Automaten und formale Sprachen Notizen zu den Folien

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert. Lösung

Automaten, Spiele, und Logik

1. Formale Sprachen Formale Sprachen

Einführung in die Theoretische Informatik

1.1 Grundlagen: Reguläre Ausdrücke

Grundbegriffe der Informatik

Übung Grundbegriffe der Informatik

Vorname: Nachname: Matrikelnummer: Studiengang (bitte ankreuzen): Technik-Kommunikation M.A.

18. Algorithmus der Woche Der Euklidische Algorithmus

Lösung zur Bonusklausur über den Stoff der Vorlesung Grundlagen der Informatik II (45 Minuten)

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

FORMALE SYSTEME. 7. Vorlesung: Reguläre Ausdrücke. TU Dresden, 2. November Markus Krötzsch

ARBEITSBLATT 5L-11 BERECHNEN VON RAUMINHALTEN

RWTH Aachen Lehrgebiet Theoretische Informatik Rossmanith Dreier Hark Kuinke. SS 2017 Blatt

Grundlagen der Theoretischen Informatik, WS11/12 Minimale Automaten

Beispiellösungen zu Blatt 24

mathematik und informatik

Zusammenhänge zwischen Sprachen und Automaten:

Name... Matrikel Nr... Studiengang...

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 12

7 Modellierung von Abläufen 7.1 Endliche Automaten

/LQHDUH*OHLFKXQJVV\VWHPH

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt 5

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 5. Semester ARBEITSBLATT 3 PARAMETERDARSTELLUNG EINER GERADEN

Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik. SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch.

1 Folgen von Funktionen

2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 3

Lösungsbeispiele zur Wiederholung quer durch den Stoff

11. DER HAUPTSATZ DER DIFFERENTIAL- UND INTEGRALRECHNUNG

Teil V: Formale Sprachen

Grundlagen der Informatik

Formale Sprachen. Endliche Automaten - Kleene. Reguläre Sprachen. Rudolf FREUND, Marion OSWALD. Endliche Automaten. Endliche Automaten: Beispiel

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Gleichmächtigkeit von DEA und NDEA

1. Kapitel: Arithmetik. Ergebnisse mit und ohne Lösungsweg

Grundkurs Mathematik. Einführung in die Integralrechnung. Lösungen und Ergebnisse zu den Aufgaben

Reduktion. Seien A Σ und B Γ. Man sagt A ist reduzierbar auf B (A B) gdw. von speziellem Interesse: Polynomialzeitreduktion

TECHNISCHE UNIVERSITÄT MÜNCHEN

1 3 Z 1. x 3. x a b b. a weil a 0 0. a 1 a weil a 1. a ist nicht erlaubt! 5.1 Einführung Die Gleichung 3 x 9 hat die Lösung 3.

1 Grundlagen der Theorie formaler Sprachen

Theoretische Grundlagen der Informatik. Vorlesung am 07. November INSTITUT FÜR THEORETISCHE INFORMATIK

Weihnachtsblatt zu Theoretische Grundlagen der Informatik im WS 2015/16

L = L(a(a b) b b(a b) a)

Satz 6.5 (Mittelwertsatz der Integralrechnung) Sei f : [a, b] R stetig. Dann gibt es ein ξ [a, b], so dass. b a. f dx = (b a)f(ξ) f dx (b a)m.

1.7 Inneres Produkt (Skalarprodukt)

ARBEITSBLATT 5L-6 FLÄCHENBERECHNUNG MITTELS INTEGRALRECHNUNG

Prof. Dr. Ulrich Furbach Dr. Manfred Jackel Dr. Björn Pelzer Christian Schwarz. Nachklausur

Klausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2013)

Grundbegriffe der Informatik Aufgabenblatt 5

6. Quadratische Gleichungen

Grundlagen. Sprachen & Automaten. Sprachen. Grundlagen. Alphabet A endliche, nichtleere Menge von Buchstaben

Der Begriff der Stammfunktion

Sprachen & Automaten. Grundlagen. Sprachen. Grundlagen

1. Rechensteine und der Pythagoräische Lehrsatz.

Skript für die Oberstufe und das Abitur 2015 Baden-Württemberg berufl. Gymnasium (AG, BTG, EG, SG, WG)

Transkript:

Algorithmen und Dtenstrukturen - Mschinenmodelle - Alexnder Sczyr Technische Fkultät sczyr@techfk.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 04/05 / 90 Kpitel 3 - Mschinenmodelle Premle Endliche Automten 3 Registermschinen 4 Invrinten 5 Zusmmenfssung / 90

Premle Zuerst hen wir uns ei Formeln und Gleichungen eng n der Mthemtik gehlten. Dnch hen wir uns m Beispiel der Musik eine Formlisierung üerlegt, die sehr leicht von uns Menschen verstnden werden knn, lso sehr nhe n unserem Verständnis der Modellwelt ist. Die Berechnungen hätten wir dei uch selst noch leicht usführen können. Eine Rechenmschine, die direkt mit Formeln und Gleichungen rechnen knn, git es nicht. Wirkliche Rechner sind viel einfcher ufgeut, und ruchen viele Opertionen, um z.b. eine Gleichung einml nzuwenden. Dies ist die in Kpitel erwähnte semntische Lücke, die durch Progrmmiersprchen und ihre Üersetzer geschlossen wird. Wir egeen uns nun uf die Mschinenseite der semntischen Lücke. 3 / 90 Ziele des Kpitels In diesem Kpitel lernen wir zwei, sehr verschiedene Modelle einer Rechenmschine kennen: Endliche Automten sind ein strktes und sehr einfches Rechnermodell. Sie verreiten Zeichenreichen und hen zhlreiche Anwendungen in der Textverreitung. Registermschinen ähneln relen Prozessoren. An ihnen lernen wir Begriffe wie Befehlszyklus, Konfigurtion, Mschinenfunktion, prtielle und totle Korrektheit kennen. Endliche Automten können nur sehr einfche Aufgen lösen, Registermschien dgegen können im Prinzip (wenn uch mit einigen Verrenkungen) lle Aufgen lösen, die üerhupt ein Rechner lösen knn. Zwischen diesen eiden Extremen git es noch weitere Rechnenmodelle mit unterschiedlicher Leistung, die in der theoretischen Informtik untersucht werden. 4 / 90

Endliche Automten Premle Endliche Automten Einführung Beispiel Formle Sprchen Opertionen uf endlichen Automten Nicht-deterministische endliche Automten (NEA) Anwendung 3 Registermschinen 4 Invrinten 5 Zusmmenfssung 5 / 90 Einführung Einordnung Automt Ein Automt ist eine strkte Mschine der Informtik. Er dient ls Erklärungsmodell und vereinfcht den Vergleich von Algorithmen, ohne uf die Detils der relen Umsetzung chten zu müssen. Ein Automt verreitet Zeichenketten und ht einen internen Zustnd. Endlicher Automt Ein Endlicher Automt knn nur eine endliche Menge n internen Zuständen einnehmen. Er ist weniger mächtig ls die uneschränkte Registermschine, die wir später kennen lernen werden. 6 / 90

Einführung Definition Definition Ein Alphet ist ein endlicher Zeichenvorrt. Eine Zeichenreihe üer Alphet A ist eine Folge... n mit i A, n 0. Für die leere Zeichenreihe (n = 0) schreit mn ε. A ist die Menge ller Zeichenreihen üer A. 7 / 90 Einführung Definition Ein endlicher Automt esteht us einem Alphet A einer endlichen Zustndsmenge S einem Strtzustnd s 0 S einer Zustndsüergngsfunktion δ : S A S einer Menge kzeptierender Zustände F Ülicherweise nimmt mn ls Zustndsmenge S mit S = m die Zhlen [0... m ], und s 0 = 0. 8 / 90

Beispiel Beispiel EA Automt EA A = {, } S = {0,,, 3} s 0 = 0 F = {0} Zustndsüergngsfunktion A δ(s, ) s S 0 3 0 0 3 3 3 3 9 / 90 Beispiel Berechnete Funktion des endlichen Automten Definition Automtenfunktion Die Automtenfunktion des Automten A = (A, S, s 0, δ, F) ist δ A : A S mit δ A (x) = δ (s 0, x) δ (s, ε) = s δ (s, x) = δ (δ(s, ), x) Die Automtenfunktion rechnet lso genu n + Schritte für eine Zeichenreihe der Länge n. 0 / 90

Beispiel Endliche Automten ls Akzeptoren Definition: Akzeptierte Wortmenge Die von A kzeptierte Wortmenge Akz(A) A ist {w A δ A (w) F} Wörter us A \ Akz(A) nennt mn zurückgewiesene Wörter. / 90 Beispiel Betrchtung zu EA Akzeptierte Wörter: ε,,,,,... Zurückgewiesene Wörter:,,,,... Allgemeines Prinzip: Akzeptiert werden elieig viele Auftreten der Zeichenpre oder, einschließlich ε. Akz(EA) = {, } n, n 0 / 90

Beispiel Üergngsdigrmm zu endlichen Automten Die Funktion δ wird grfisch drgestellt: Beispiel EA, 0 3 Zustände f F ekommen einen doppelten Kreis. 3 / 90 Beispiel Betrchtung zu EA (Fortsetzung) Aus Zustnd 3 führt keine Folge von Üergängen in einen kzeptierenden Zustnd. Solche Zustände nennt mn Fehlerzustände und lässt sie weg: 0 δ(s, ) 0 0 0 Ds Digrmm ist dmit kleiner, und die δ-funktion prtiell. 4 / 90

Beispiel Vrinten von EA EA 0 3 Ws sind die fehlenden Üergänge/Fehlerzustände? Ws ist Akz(EA)? 5 / 90 Beispiel Vrinten von EA EA 0 3 Ws sind die fehlenden Üergänge/Fehlerzustände? Ws ist Akz(EA)? Akz(EA) = Akz(EA) {ε} 6 / 90

Beispiel EA3 0 3 Ws sind die fehlenden Üergänge/Fehlerzustände? Ws ist Akz(EA3)? 7 / 90 Beispiel EA3 0 3 Ws sind die fehlenden Üergänge/Fehlerzustände? Ws ist Akz(EA3)? Akz(EA3) = { n, n 0} { n, n 0} 8 / 90

Beispiel EA4 0 3, Hier git es keine Fehlerzustände, trotzdem ist Akz(EA4) A 9 / 90 Beispiel EA4 0 3, Hier git es keine Fehlerzustände, trotzdem ist Akz(EA4) A Akz(EA4) = {xy, xy x, y A } In Worten: EA4 kzeptiert lle Zeichenreihen, die irgendwo ein oder enthlten. 0 / 90

Beispiel EA5 0 Welche Üergänge fehlen? Ws ist Akz(EA5)? / 90 Beispiel EA5 0 Welche Üergänge fehlen? Ws ist Akz(EA5)? Akz(EA5) = { n n 0} { n n 0} / 90

Beispiel Komplement von Wortprolemen Beochtung: Akz(EA5) = A Akz(EA4) Stz Die von endlichen Automten kzeptierten Wortmengen sind geschlossen unter Komplementildung in A. 3 / 90 Beispiel Beweis: Sei A = (A, S, s 0, δ, F). Wir setzen Ā = (A, S, s 0, δ, S \ F). Offensichtlich gilt Akz(Ā) = A Akz(A). Achtung, nhnd der Digrmme ist dies erst offensichtlich, wenn mn lle weggelssenen Zustände und Üergänge wieder ergänzt. 4 / 90

Formle Sprchen Formle Sprchen Definition Eine formle Sprche üer A ist eine elieige Teilmenge L A. Dmit ist für jeden endlichen Automten A die Akzeptierte Wortmenge Akz(A) eine formle Sprche. 5 / 90 Formle Sprchen Formle Sprchen Definition Eine formle Sprche üer A ist eine elieige Teilmenge L A. Dmit ist für jeden endlichen Automten A die Akzeptierte Wortmenge Akz(A) eine formle Sprche. Üerlegung Git es umgekehrt für jede formle Sprche L einen endlichen Automten A mit Akz(A) = L? 6 / 90

Formle Sprchen Gegeneispiel Zur Widerlegung unserer Üerlegung können wir ein einfches Gegeneispiel konstruieren. 7 / 90 Formle Sprchen Gegeneispiel Zur Widerlegung unserer Üerlegung können wir ein einfches Gegeneispiel konstruieren. Idee Wir nutzen die Beschränkung uf endlich viele Zustände ls Anstzpunkt für unser Gegeneispiel. 8 / 90

Formle Sprchen Betrchte L = { m m, m 0} 9 / 90 Formle Sprchen Betrchte L = { m m, m 0} 0 n n n n n+ n+ 30 / 90

Formle Sprchen Betrchte L = { m m, m 0} 0 n n n n n+ n+ Dieser Automt kzeptiert { m m m n}, er für lle m 0 räuchte er eine unendliche Zustndsmenge. Dies ist nur eine Plusiilitätsüerlegung. Wie könnte mn diese Ttsche eweisen? 3 / 90 Formle Sprchen Bedeutung endlicher Automten Endliche Automten ilden die kleinste Klsse einer Hierrchie geildet durch Endliche Automten Kellerutomten (zusätzlich noch einen unendlichen Kellerspeicher) Liner eschränkte Automten (wie Turing-Mschine, nur Bnd eschränkt uf Bereich des ursprünglichen Eingewortes) Turing-Mschinen, Registermschinen (uneschränkter Speicher zw. uneschränktes Bnd) ( Mehr dzu in der Vorlesung Theoretische Informtik) Gute Effizienz und trivile Terminierung 3 / 90

Formle Sprchen Prktische Bedeutung endlicher Automten Einfches Progrmmiermodell für einfche Klsse von Wortprolemen. Viele wichtige Anwendungen Codierungsproleme Üersetzung von Progrmmiersprchen Dokument-Verreitung 33 / 90 Opertionen uf endlichen Automten Verknüpfung endlicher Automten Konktention (uch Produkt gennnt) 0 v o r 3 und 0 o r t 3 ergit 0 v o r 3 o 4 r 5 t 6 34 / 90

Opertionen uf endlichen Automten Belieige Wiederholung Aus l 0 3 wird 0 l 35 / 90 Opertionen uf endlichen Automten Vereinigung Aus 0 v o r 3 und 0 o r t 3 wird 0 v o 4 o r 5 r t 3 6 (Zustände 3, 6 könnte mn zusmmenlegen)... er so einfch geht s nicht immer. 36 / 90

Opertionen uf endlichen Automten Aus 0 t o r 3 und 0 t o t 3 wird 0 t t 4 o o 5 r t 3 6 ds ist kein endlicher Automt... 37 / 90 Nicht-deterministische endliche Automten (NEA) Nicht-deterministische endliche Automten (NEA) Der NEA erlut us einem Zustnd verschiedene Üergänge unter dem gleichen Eingezeichen, ht nch n Schritten eine Menge möglicher Zustände, kzeptiert eine Zeichenreihe, wenn es eine mögliche Üergngsfolge git, die zu einem kzeptierenden Zustnd führt. 38 / 90

Nicht-deterministische endliche Automten (NEA) Nicht-deterministische endliche Automten (NEA) Der NEA erlut us einem Zustnd verschiedene Üergänge unter dem gleichen Eingezeichen, ht nch n Schritten eine Menge möglicher Zustände, kzeptiert eine Zeichenreihe, wenn es eine mögliche Üergngsfolge git, die zu einem kzeptierenden Zustnd führt. Prllel-Universen? Mn knn den nicht-deterministischen endlichen Automten uch so uffssen, dss ei jeder nicht-deterministischen Verzweigung mehrere Prlleluniversen erzeugt werden, in denen jeweils eine Kopie des Automten einen unterschiedlichen Pfd üerprüft. Ein Wort wird dnn vom NEA kzeptiert, wenn es in mindestens einem der Prlleluniversen kzeptiert wird. 39 / 90 Nicht-deterministische endliche Automten (NEA) Stz (Konstruktion von Myhill) Zu jedem NEA git es einen EA, der die gleiche Wortmenge kzeptiert. Beweis-Idee: Im NEA ist für jede Einge nch jedem Schritt eine Menge von Zuständen erreichr. Diese Zustndsmengen sind Zustände des EA. Eine solche Zustndsmenge ist kzeptierender Zustnd des EA, wenn sie einen kzeptierenden Zustnd des NEA enthält. Die Anzhl der Zustände des resultierenden EAs knn exponentiell größer sein ls die des NEAs. 40 / 90

Anwendung Anwendungen von NEAs Reguläre Ausdrücke Für die Suche in und die Verreitung von Texten werden häufig reguläre Ausdrücke verwendet. Diese lssen sich uf NEAs ilden. D NEAs schnell und effizient Entscheidungen üer die Zugehörigkeit einer Einge zur kzeptierten Wortmenge treffen können, werden in den Progrmmiertools die regulären Ausdrücke intern erst einml in einen entsprechenden NEA konvertiert (kompiliert). 4 / 90 Anwendung Bestndteile Regulärer Ausdrücke Symol Bedeutung Beispiel Zeichen ds Zeichen selst hllo [] Auswhl h[e]llo - Bereich (innerhl von []) [-za-z] () Klmmerung eines Ausdrucks (hllo). Belieiges Zeichen h.llo? Optionl Brrck (Hussein)? Om + Mindestens einmliges [ 0]+ Vorkommen * Belieig oftes Vorkommen 0 {u,o} Beschränktes Vorkommen hl{,}o (untere und oere Grenze) - etc. Sonderzeichen escpen Doppel\-Nme 4 / 90

Anwendung Beispiel Jv Prktische Auswirkung In der Regel ist es effizienter, ei der Verwendung von regulären Ausdrücken die Konvertierung in den NEA nur einml vorzunehmen und im Anschluss den ereits konvertierten NEA zu verwenden. Sttt oolen = Pttern. mtches ( "*", "" ) ; sollte mn ei häufigeren Tests dher Pttern p = Pttern. compile ( "*" ) ; Mtcher m = p. mtcher ( "" ) ; 3 oolen = m. mtches ( ) ; verwenden. 43 / 90 Anwendung Verwendet Jv heute NEAs? In 007 ht Russ Cox einen Performnz-Test zwischen verschiedenen Implementierungen regulärer Ausdrücke und einer Implementierung sierend uf NEAs gemcht und ist zu folgendem Ergenis gekommen: Time to mtch? n n ginst n http://swtch.com/~rsc/regexp/regexp.html 44 / 90

Anwendung Verwendet Jv heute NEAs? In 007 ht Russ Cox einen Performnz-Test zwischen verschiedenen Implementierungen regulärer Ausdrücke und einer Implementierung sierend uf NEAs gemcht und ist zu folgendem Ergenis gekommen: Time to mtch? n n ginst n http://swtch.com/~rsc/regexp/regexp.html Wie ist die Sitution heute? 45 / 90 Registermschinen Premle Endliche Automten 3 Registermschinen Einführung Begriffe Befehle Rechnen Semntik Beochtungen Erweiterung zur Indirekten Adressierung 4 Invrinten 5 Zusmmenfssung 46 / 90

Einführung [Dieses Kpitel hält sich eng n ds empfohlene Buch von Ske/Sttler] 47 / 90 Einführung Einführung Eine Registermschine ist eine forml definierte Rechenmschine 48 / 90

Einführung Einführung Eine Registermschine ist eine forml definierte Rechenmschine reltiv ähnlich zu wirklicher Hrdwre (insesondere der frühen Jhre) 49 / 90 Einführung Komponenten der Registermschine Progrmm speicher 3 n B Zentrle Recheneinheit C + * = Recheneinheit Steuer einheit 0 Areits speicher C C C 3 C 4... n B C 0 C, C,... +,, = * : : : : : Progrmm ( n Befehle) Befehlszähler Akkumultor (Areitsregister) Areitsspeicher (Register) Rechenwerke Wir verwenden ls Beispiel eine Registermschine, die nur zwei Dtentypen kennt ntürliche Zhlen und Befehle. 50 / 90

Begriffe Befehlszyklus Die Registermschine iteriert einen Befehlszyklus: Progrmm speicher 3 n... n : B C 0 C, C,... +,, * = : : : : B Zentrle Recheneinheit C + * = Recheneinheit Steuer einheit Progrmm ( n Befehle) Befehlszähler Akkumultor (Areitsregister) Areitsspeicher (Register) Rechenwerke 0 Areits speicher C C C 3 C 4 Sei i der Inhlt von B. Lde i us dem Progrmmspeicher in die Steuereinheit. Erhöhe B uf i +. Decodiere i und führe ihn us durch Lden von Opernden Durchführung von Rechenopertionen Aspeichern des Ergenisses Veränderung des Kontrollflusses Die Ausführung hängt ntürlich im Einzelnen von dem konkreten Befehl. 5 / 90 Begriffe Progrmm Ds Progrmm ist eine Folge von Befehlen,,..., n Diese ist ei uns unveränderr (im Unterschied zu relen Rechnern, wo Progrmme in den Progrmmspeicher gelden und verändert werden können). 5 / 90

Begriffe Progrmm Ds Progrmm ist eine Folge von Befehlen,,..., n Diese ist ei uns unveränderr (im Unterschied zu relen Rechnern, wo Progrmme in den Progrmmspeicher gelden und verändert werden können). Offene Frgen Welche Befehle enötigen wir für unsere Registermschine? Wie können wir diese Befehle genu eschreien? 53 / 90 Begriffe Konfigurtion Idee Wir eschreien die Befehle üer die durch sie verurschten Zustndsänderungen unserer Registermschine. Eine vollständige Zustndseschreiung der Registermschine nennen wir Konfigurtion. Progrmm speicher 3 n... n : B : C 0 : C, C,... : +,, * = : B Zentrle Recheneinheit C0 + * = Recheneinheit Steuer einheit Progrmm ( n Befehle) Befehlszähler Akkumultor (Areitsregister) Areitsspeicher (Register) Rechenwerke Areits speicher C C C 3 C 4 Enthält B die Zhl, und C i die Zhl c i, 0 i, so heisst (, c 0, c,... ) ktuelle Konfigurtion der Registermschine. Die Ausführung eines Befehls ewirkt einen Konfigurtions-Üergng (, c 0, c,... ) (, c 0, c,... ) 54 / 90

Befehle Lden und Speichern Progrmm speicher 3 n B Zentrle Recheneinheit C + * = Recheneinheit Steuer einheit 0 Areits speicher C C C 3 C 4 LOAD i, i N + = + c 0 = c i c j = c j für j 0... n : Progrmm ( n Befehle) CLOAD i, i N = + c 0 B : Befehlszähler = i c j = c j für j 0 STORE C i, i 0 : N + Akkumultor = + (Areitsregister) c i = c 0 c j = c j für j i C, C,... : Areitsspeicher (Register) +,, = : Rechenwerke * 55 / 90 Befehle Arithmetische Befehle ADD i, i N + = + c 0 = c 0 + c i c j = c j für j 0 CADD i, i N + = + c 0 = c 0 + i c j = c j für j 0 SUB i, i N + = + c 0 = { c0 c i für c 0 c i 0 sonst CSUB i, i N + = + c 0 = { c0 i für c 0 i 0 sonst c j = c j für j 0 c j = c j für j 0 MULT i, i N + = + c 0 = c 0 c i c j = c j für j 0 CMULT i i N + = + c 0 = c 0 i c j = c j für j 0 DIV i, i N + = + c 0 = c 0/c i c j = c j für j 0 CDIV i, i N + = + c 0 = c 0/i c j = c j für j 0 56 / 90

Befehle Bemerkung Arithmetik uf ntürliche Zhlen eschränkt: sttt negtiver Differenz ist ds Ergenis 0. Division erfolgt gnzzhlig es git keinen Üertrg z.b. ei negtiven Zhlen oder wenn ds Register ds Ergenis nicht mehr ilden knn (z.b. größte drstellre Zhl + ) 57 / 90 Befehle Sprungefehle GOTO i, i N + = i c j = c j für j 0 { IF c 0 = 0 GOTO i, i N + i flls c0 = 0 = c + sonst j = c j für j 0 END = c j = c j für j 0 58 / 90

Rechnen Mschinen und Progrmmläufe Registermschinen unterscheiden sich durch ihr Progrmm. Verschiedene Progrmmläufe unterscheiden sich durch die Strt-Konfigurtion (lles weitere ist j festgelegt). Strt-Konfigurtion (, 0, x,..., x n, 0, 0,... ) x i sind die Einge-Prmeter in den Registern c... c n. 59 / 90 Rechnen Berechnete Funktion M erechnet Funktion f M : N n N m mit (y,..., y m ) = f M (x,..., x n ), flls für lle x,..., x n N gilt (, 0, x,..., x n, 0, 0,... ) (e, c, y,..., y m,... ) und e ist ein END-Befehl. 60 / 90

Rechnen Beispiel M + LOAD ADD 3 STORE 3 4 END (, 0,, ) (4, +,,, + ) F M+ (x, x ) = (x, x, x + x ) 6 / 90 Rechnen Beispiel M fi LOAD ADD 3 STORE 4 SUB 5 STORE 6 END (, 0,, ) (6,,, + ) M fi erechnet einen Schritt der Fioncci-Itertion. f Mfi (x, x ) = (x, x, x + x ) 6 / 90

Rechnen Beispiel M LOAD DIV 3 MULT 4 STORE 3 5 LOAD 6 SUB 3 7 STORE 3 8 END 63 / 90 Rechnen Rechnung von M mit r = n (n div m) m Berechnete Funktion: (, 0, n, m, 0)...... (8, r, n, m, r) f M (x, x ) = (x, x, x mod x ) 64 / 90

Semntik Semntik einfcher Progrmme Beispiel M id Beispiel M undef END GOTO END f Mid (x,..., x n ) = (x,..., x n ) f Mundef (x,..., x n ) =undefiniert 65 / 90 Semntik Beispiel M 3 Beispiel M 4 LOAD LOAD IF c 0 = 0 GOTO 4 IF c 0 = 0 GOTO 3 GOTO 3 END 4 END f M3 (x ) = 0 flls x = 0 f M4 (x ) = x flls x > 0 = undefiniert, sonst = undefiniert, sonst 66 / 90

Beochtungen Beochtungen zu unserer Registermschine Die Anzhl der enutzten Register liegt sttisch fest. Alle Adressen stehen explizit im Progrmm. Die Anzhl der Befehle ei Ausführung ist sttisch nicht estimmr und hängt insesondere von den (edingten) Sprüngen. Progrmme ohne Schleifen knn mn symolisch usführen und so die erechnete Funktion estimmen. Bei Progrmmen mit Schleifen führt die symolische Ausführung nicht zu einer Bestimmung der erechneten Funktion. Es entsteht eine unendlich große Formel. 67 / 90 Erweiterung zur Indirekten Adressierung Neue Prolemstellung Es soll die Summe einer elieig lngen Zhlenkette geildet werden. Anstz: Zhlenkette eginnt c0 Ende mit c i = 0 gekennzeichnet. c hält unser ktuelles Zwischenergenis. CLOAD 0 STORE 3 GOTO 5 4 END 5 LOAD 0 6 IF C 0 = 0 GOTO 4 7 ADD 8 STORE 9 LOAD 0 IF C 0 = 0 GOTO 4 ADD STORE 3 LOAD 68 / 90

Erweiterung zur Indirekten Adressierung Erweiterung: Indirekte Adressierung Bislng wren lle Speicherdressen immer sttisch im Progrmm festgelegt. Ds Potentil des gedchten unendlich großen Speichers lässt sich dmit nicht effizient usschöpfen. Zusätzlich zu konstnten (C-Befehle) und sttisch dressierten Speicherzugriffen führt mn dher noch indirekt dressierte Speicherzugriffe ein. Die Adresse der Ziel-Speicherzelle wird dei erst us einer sttisch dressierten Speicherzelle usgelesen. Unsere neuen Befehle luten INDLOAD, INDSTORE, INDADD, INDSUB, INDMUL, INDDIV. 69 / 90 Erweiterung zur Indirekten Adressierung INDLOAD i, i N + = + c 0 = c c i c j = c j für j 0 INDSTORE i, i N + = + c c = c 0 i c j = c j für j i j N ADD i, i N + = + c 0 = c 0 + c i c j = c j für j 0 INDADD i, i N + = + c 0 = c 0 + c ci c j = c j für j 0 SUB i, i N + = + c 0 = { c0 c i für c 0 c i 0 sonst INDSUB i, i N + = + c 0 = { c0 c ci für c 0 c ci 0 sonst c j = c j für j 0 c j = c j für j 0 MULT i, i N + = + c 0 = c 0 c i c j = c j für j 0 INDMULT i i N + = + c 0 = c 0 c ci c j = c j für j 0 DIV i, i N + = + c 0 = c 0/c i c j = c j für j 0 INDDIV i, i N + = + c 0 = c 0/c ci c j = c j für j 0 70 / 90

Erweiterung zur Indirekten Adressierung Summe einer Liste von Zhlen Es soll die Summe einer elieig lngen Zhlenkette geildet werden. Anstz: Zhlenkette eginnt c0 Ende mit c i = 0 gekennzeichnet. c hält unser ktuelles Zwischenergenis. c enthält unseren ktuellen Index. CLOAD 0 STORE 3 CLOAD 0 4 STORE 5 INDLOAD 6 IF C 0 = 0 GOTO 3 7 ADD 8 STORE 9 LOAD 0 CADD STORE GOTO 5 3 END 7 / 90 Invrinten Premle Endliche Automten 3 Registermschinen 4 Invrinten Definition Beispiele Komplexeres Beispiel Prtielle vs. Totle Korrektheit 5 Zusmmenfssung 7 / 90

Definition Invrinten Um die erechnete Funktion von Progrmmen mit Schleifen im Allgemeinen zu finden, enutzt mn Invrinten. Diese sind Aussgen üer Konfigurtionen, die n gewissen Progrmmstellen immer erfüllt sind: φ (c 0, c,... ) gilt m Üergng von Befehl zu. φ strt (c 0, c... ) gilt m Anfng, φ end (c 0, c... ) m Ende. 73 / 90 Beispiele Invrinten zu M 3 3 4 Beispiel M 3 LOAD IF c 0 = 0 GOTO 4 3 GOTO 4 END φ strt = (c 0 = 0, c = x 0) φ = (c 0 = c = x 0) φ 3 = (c 0 = c = x > 0) φ 3 = (c 0 = c = x > 0) φ 4 = (c 0 = c = 0) φ end = (c 0 = c = 0) 74 / 90

Beispiele Invrinten zu M 3 Beispiel M 3 LOAD IF c 0 = 0 GOTO 4 3 GOTO 4 END φ strt = (c 0 = 0, c = x 0) 3 φ φ 3 = = (c 0 = c = x 0) (c 0 = c = x > 0) φ 3 = (c 0 = c = x > 0) 4 φ 4 = (c 0 = c = 0) φ end = (c 0 = c = 0) Bei der ersten Ausführung von Befehl gilt φ, ei eventuellen weiteren die stärkere Invrinte φ 3 = φ 3. Wird lso Punkt 3 einml erreicht, liegt Endlosschleife vor. Punkt 4 wird erreicht genu dnn, wenn x = 0. 75 / 90 Beispiele Invrinten zu M 4 3 Beispiel M 4 LOAD IF c 0 = 0 GOTO 3 END φ strt = (c 0 = 0, c = x 0) φ = (c 0 = c = x 0) φ 3 = (c 0 = c = x > 0) φ = (c 0 = c = x = 0) φ end = (c 0 = c = x > 0) 76 / 90

Komplexeres Beispiel Registermschine M CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END 77 / 90 Komplexeres Beispiel Progrmmflussdigrmm für M CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END 3 4 5 6 7 8 φ strt = (c = x, c = y) 0 Wir suchen φ end, indem wir φ strt durch ds Digrmm propgieren. Ds geht üerll einfch, ußer m Schleifenkopf 4. 9 78 / 90

Komplexeres Beispiel CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END φ strt = (c 0 = 0, c = x, c = y) φ = (c 0 =, c = x, c = y) φ 3 = (c 0 =, c = x, c = y, c 3 = ) φ 34 = (c 0 = y, c = x, c = y, c 3 = ) Hier entsteht nun ds Prolem, dss wir φ 45 nicht llein us φ 34 und 4 estimmen können, d es uch von φ 4 hängt, ds wir noch nicht kennen. 79 / 90 Komplexeres Beispiel CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END Idee: Wir fügen eine neue, noch uneknnte Invrinte φ 4 für den Schleifenkopf ein. Für sie muss gelten φ 34 oder φ 4 φ 4. Dei hängt φ 4 ntürlich von φ 4. Mit dem noch uneknnten φ 4 rechnen wir weiter. 80 / 90

Komplexeres Beispiel CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END Sei φ 4 = (c 0 =, c = x, c =, c 3 = d) mit Uneknnten,, d. φ 45 = (c 0 = > 0, c = x, c =, c 3 = d) φ 56 = (c 0 = d, > 0, c = x, c =, c 3 = d) φ 67 = (c 0 = d x, > 0, c = x, c =, c 3 = d) φ 78 = (c 0 = d x, > 0, c = x, c =, c 3 = d x) 8 / 90 Komplexeres Beispiel CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END φ 89 = (c 0 =, > 0, c = x, c =, c 3 = d x) φ 9 0 = (c 0 =, > 0, c = x, c =, c 3 = d x) φ 0 = (c 0 =, > 0, c = x, c =, c 3 = d x) φ 4 = φ 0 φ 4 = φ 4 c = 0 8 / 90

Komplexeres Beispiel CLOAD STORE 3 3 LOAD 4 IF c 0 = 0 GOTO 5 LOAD 3 6 MULT 7 STORE 3 8 LOAD 9 CSUB 0 STORE GOTO 4 END Jetzt müssen wir φ 4 herusfinden. Es muss gelten φ 34 φ 4 und φ 4 φ 4 φ 34 : (c 0 = y, c = x, c = y, c 3 = ) φ 4 : (c 0 =, c = x, c =, c 3 = d x, > 0) φ 4 : (c 0 =, c = x, c =, c 3 = d) 83 / 90 Komplexeres Beispiel Den Effekt eines Schleifendurchlufs uf φ 4 hält φ 4 fest. Wir eochten c ändert sich nicht, c 0, c und c 3 ändern sich. Für φ 4 wie für φ 3 4 gilt invrint: c 3 = x (y c ). Wir setzen ls neue Invrinte Es gilt φ 34 impliziert ˆφ 4. ˆφ 4 = (c 0 = c, c = x, c 3 = x (y c ) ) Es gilt nch Durchschieen von ˆφ 4 durch die Schleife ˆφ 4 = (c 0 = c, c = x, c 3 = x (y (c +)) x) = ˆφ 4 84 / 90

Komplexeres Beispiel Dmit finden wir nun die Endkonfigurtion φ 4 = (c 0 = 0, c = x, c = c 0 = 0, c 3 = x y ) φ end = φ 4 Dmit ist ewiesen, dss die Mschinenfunktion von M lutet f M (x, y) = (x, 0, x y ) Allerdings gilt dies nur, wenn Punkt erreicht wird. Im Beispiel dieser Mschine ist die Terminierung einfch zu zeigen, im llgemeinen er schwer. 85 / 90 Prtielle vs. Totle Korrektheit Prtielle versus Totle Korrektheit Ein Mschinenprogrmm M heisst prtiell korrekt für eine Funktion f : N n N m, flls f M (x,..., x n ) = f (x,..., x n ), sofern f M terminiert. M heisst totl korrekt für f, flls gilt: Wenn f (x,..., x n ) definiert ist, so terminiert f M uf Einge x,..., x n mit dem Ergenis f (x,..., x n ). 86 / 90

Prtielle vs. Totle Korrektheit Nchweis der Korrektheit Für Registermschinenprogrmme wie für lle impertiven Progrmme weist mn prtielle Korrektheit durch die Bestimmung der Invrinten nch. Anstelle der Terminierung zeigt mn lieer eine stärkere Aussge: Mn git n, nch wievielen Schritten eine Berechnung endet Kpitel Effizienznlyse. 87 / 90 Zusmmenfssung Endliche Automten 88 / 90

Zusmmenfssung Endliche Automten Registermschinen 89 / 90 Zusmmenfssung Endliche Automten Registermschinen Anlyse von Progrmmen mittels Invrinten 90 / 90