Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung

Größe: px
Ab Seite anzeigen:

Download "Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung"

Transkript

1 Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 D Stuttgart Diplomarbeit Nr Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung Florian Haupt Studiengang: Informatik Prüfer: Betreuer: begonnen am: beendet am: Prof. Dr. Frank Leymann Dipl. Inf. Katharina Görlach CR-Klassifikation: F.1.1, F.4.2, H.4.1

2 Inhaltsverzeichnis 1 Einleitung Kapitelübersicht Grundlagen Workflow Technologie BPEL Web Services Scientific Workflow Cloud Computing Formale Sprachen, Grammatiken, Automatenmodelle Grundlagen Klassifikation von Formalen Sprachen Reguläre Sprachen (Chomsky Typ 3) Kontextfreie Sprachen (Chomsky Typ 2) Kontextsensitive Sprachen (Chomsky Typ 1) Rekursiv aufzählbare Sprachen (Chomsky Typ 0) Workflow Grammatiken (WoG) Motivation Grundlagen Typen von Nichtterminalen Produktionsregeln Zusammenfassung Anwendung von Grammatiken zur Erzeugung von Wörtern Reguläre Grammatiken (Chomsky Typ 3) Kontextfreie Grammatiken (Chomsky Typ 2) Kontextsensitive Grammatiken (Chomsky Typ 1) Rekursiv aufzählbare Grammatiken (Chomsky Typ 0) Zusammenfassung Aufbau einer Workflow Engine Überblick über bestehende Architekturen Workflow Management Coalition The Workflow Reference Model Apache ODE Workflow Execution Engine (WEE) Oracle BPEL Process Manager YAWL Workflow System... 46

3 5.2. Zusammenfassung der vorgestellten Workflow Management Systeme Komponenten einer Workflow Engine Navigator Prozessmodellspeicher Instanzspeicher Auswertung von Ausdrücken Programmaufrufkomponente Erzeugen von Prozessinstanzen, Übergabeparameter Ausführung von Workflows in einer Cloud Umgebung Komponenten einer Workflow Engine in einer Cloud Umgebung Anwendungsszenario Anwendungsszenario Entwurf einer Workflow Engine für die Ausführung von Workflow Grammatiken Überführung von Workflow Grammatiken ein eine interne Repräsentation Transformation in kontextfreie Grammatiken Zuordnung von zu Regeln und Aktionen Behandlung der generischen Regeln Zusammenfassung Aufbau einer Workflow Engine für Workflow Grammatiken Navigator Prozessmodellspeicher Instanzspeicher Prozessdatenspeicher und Auswertung von Ausdrücken Programmaufruf Schnittstellen nach außen Prototyp einer Workflow Engine für Workflow Grammatiken Dateiformat für Workflow Grammatiken Interne Repräsentation für ausführbare Workflow Grammatiken Funktionsweise des Navigators Weitere Komponenten der Workflow Engine Zusammenfassung Zusammenfassung Verzeichnisse... 83

4 Abkürzungsverzeichnis BPEL BPM IAAS IaaS OaaS ODE PaaS QoS SaaS SEPL WEE WoG WS YAWL Business Process Execution Language Business Process Management Institut für Architektur von Anwendungssystemen Infrastructure as a Service Orchestration as a Service Orchestration Director Engine Platform as a Service Quality of Services Software as a Service Service Protocol Language Workflow Execution Engine Workflow Grammatik / Workflow Grammar Web Service Yet Another Workflow Language

5 1 Einleitung 1 Einleitung Sowohl für die Beschreibung von Geschäftsprozessen als auch für die Beschreibung anderer Prozessarten, wie beispielsweise wissenschaftlicher Experimente (Scientific Workflows), existieren vielfältige Prozessmodelle und Prozessbeschreibungssprachen. Das Institut für Architektur von Anwendungssystemen (IAAS) 1 entwickelt eine Sprache zur Beschreibung von Prozessen, im Folgenden als Workflow Grammatik (WoG) bezeichnet, die auf dem Konzept der formalen Sprachen basiert. Ein Prozessmodell wird dabei durch eine Grammatik dargestellt. Eine Prozessausführung wird durch ein Wort der durch die Grammatik beschriebenen Sprache repräsentiert. Workflow Grammatiken sind so aufgebaut, dass bestehende Prozessbeschreibungssprachen auf Workflow Grammatiken abbildbar sind. Damit wird erreicht, dass unterschiedliche Sprachen und Sprachtypen vergleichbar und sinnvoll klassifizierbar werden, indem man sie auf Workflow Grammatiken als Vergleichsbasis abbildet. Ein weiterer Aspekt, der im Zentrum dieser Arbeit steht, ist die einheitliche Ausführung. Prozessmodelle unterschiedlicher Sprachen können von der gleichen Workflow Engine ausgeführt werden, indem sie zunächst in Workflow Grammatik Modelle konvertiert und anschließend auf einer Workflow Grammatik Workflow Engine ausgeführt werden. In dieser Arbeit wird die Ausführung von Workflow Grammatiken durch eine Workflow Engine untersucht. Eine Workflow Grammatik auszuführen bedeutet, mit Hilfe der Produktionsregeln einer solchen Grammatik ein Wort zu erzeugen. Aus der Theoretischen Informatik sind Automatenmodelle bekannt, die ebenfalls auf Grammatiken arbeiten. Diese Automaten produzieren jedoch keine Wörter, sie erkennen oder akzeptieren Wörter. Zunächst werden die prinzipiellen Unterschiede zwischen akzeptierenden und generierenden Automaten beschrieben und analysiert. Anschließend werden für die Grammatiktypen der Chomsky Hierarchie Verfahren zur Erzeugung von Wörtern entwickelt. Diese orientieren sich an den akzeptierenden Automatenmodellen, beachten jedoch zusätzlich die speziellen Eigenschaften von Workflow Grammatiken. Ein weiterer Teil dieser Arbeit besteht in der Analyse des Aufbaus einer Workflow Engine. Nach einer kurzen Begriffsdefinition und -abgrenzung werden konkrete Beispielarchitekturen beschrieben und verglichen. Ausgehend von diesen Betrachtungen werden der allgemeine Aufbau und die prinzipielle Funktionsweise einer Workflow Engine beschrieben. Der dabei vorgestellte modulare Aufbau wird anschließend im Kontext der Ausführung von Workflows innerhalb einer Cloud Umgebung näher betrachtet. Anhand zweier Anwendungsszenarien wird gezeigt, wie die Modularisierung einer Workflow Engine dazu genutzt werden kann, einzelne Funktionalitäten in die Cloud Umgebung auszugliedern. Die Betrachtungen sowohl zum Erzeugen von Wörtern aus einer Grammatik als auch zum allgemeinen Aufbau einer Workflow Engine werden anschließend kombiniert. Es wird der Aufbau einer modularen Workflow Engine zur Ausführung von Workflow Grammatiken vorgestellt. Dabei wird beschrieben, wie eine gegebene Workflow Grammatik in eine interne Repräsentation überführt wird, um diese anschließend effizient ausführen zu können. Basierend auf dem zuvor beschriebenen Entwurf wurde ein Prototyp einer Workflow Grammatik Workflow Engine entwickelt. Der Aufbau sowie die wesentlichen Aspekte der Implementierung des Prototypen werden abschließend kurz vorgestellt. 1 5

6 1 Einleitung 1.1. Kapitelübersicht Im Folgenden wird eine kurze Übereicht über die einzelnen Kapitel dieser Arbeit gegeben. Kapitel 1 beinhaltet eine allgemeine Einführung in das Thema dieser Arbeit, einen Überblick über ihren Aufbau sowie einige im Folgenden benötigten Grundlagen. Kapitel 2 gibt eine allgemeine Einführung in die Themenbereiche Formalen Sprachen, Grammatiken und Automatenmodelle. In Kapitel 3 wird eine weitere Grundlage dieser Arbeit, das Konzept der Workflow Grammatiken, vorgestellt und beschrieben. Kapitel 4 stellt zu Beginn den Zusammenhang zwischen der Ausführung von Workflow Grammatiken und dem Erzeugen von Wörtern aus einer Grammatik her und beschreibt ihn detailliert. Anschließend werden, angelehnt an die in Kapitel 2 eingeführten Grammatikklassen, Verfahren zur Erzeugung von Wörtern aus einer Grammatik entwickelt. Dabei werden zum einen allgemeine Grammatiken, zum anderen aber auch Workflow Grammatiken und die damit verbundenen zusätzlichen Anforderungen an generierende Verfahren betrachtet. In Kapitel 5 wird der zweite wesentliche Aspekt dieser Arbeit, der Aufbau einer Workflow Engine, betrachtet. Ausgehend von einer Analyse ausgewählter Architekturen werden die einzelnen Komponenten einer Workflow Engine allgemein beschrieben. Zum Schluss des Kapitels werden zwei Anwendungsszenarien für die Ausführung von Workflows in einer Cloud Umgebung vorgestellt. In Kapitel 6 werden die in Kapitel 4 und 5 erarbeiteten Ergebnisse kombiniert und der Entwurf einer modularen Workflow Engine vorgestellt. Dabei wird ebenfalls gezeigt, wie die in Kapitel 3 vorgestellten Workflow Grammatiken für die Ausführung bearbeitet und in eine interne Repräsentation überführt werden. Kapitel 7 beschreibt die Umsetzung des im vorherigen Kapitel beschriebenen Entwurfs als Prototyp einer Workflow Grammatik Workflow Engine. Der Inhalt dieser Arbeit wird abschließend in Kapitel 8 noch einmal zusammengefasst. Die wesentlichen Ergebnisse, die Einschränkungen dieser Arbeit sowie mögliche Folgearbeiten werden beschrieben. Kapitel 9 enthält das Literaturverzeichnis sowie weitere Verzeichnisse, wie beispielsweise das Abbildungsverzeichnis oder ein Verzeichnis aller verwendeten Abkürzungen Grundlagen In den folgenden Abschnitten werden grundlegende Begriffe, Techniken und Technologien eingeführt, die im Rahmen dieser Arbeit verwendet oder referenziert werden. Es soll lediglich eine kurze Einführung in die genannten Themen gegeben werden. Falls im weiteren Verlauf dieser Arbeit nötig, werden einzelne Themen in den entsprechenden Kapiteln nochmals vertieft Workflow Technologie Workflow Technologie behandelt die Abbildung von realen Geschäftsprozessen auf IT Umgebungen. Geschäftsprozesse können mit Hilfe von Prozessmodellen beschrieben werden. Sie spezifizieren den genauen Ablauf eines Geschäftsprozesses als Folge von Geschäftsfunktionen. Wird der Ablauf eines Geschäftsprozesses von einer IT Umgebung kontrolliert und bestehen die Geschäftsfunktionen aus Programmen, dann spricht man anstatt von Prozessmodellen und Prozessen von Workflowmodellen und Workflows [LR00]. 6

7 1 Einleitung BPEL Die Web Service Business Process Execution Language (WS-BPEL, im Folgenden nur BPEL) ist eine XML basierte Sprache zur Beschreibung von Geschäftsprozessen. Geschäftsfunktionen sind in BPEL Prozessen als Web Services implementiert. Ein BPEL Prozess kann selbst wieder als Web Service zur Verfügung gestellt werden, weswegen BPEL auch als rekursive Aggregationssprache für Web Services bezeichnet wird. BPEL ist ein von der Organization for the Advancement of Structured Information Standards (OASIS) 2 veröffentlichter Standard, die aktuelle Version ist WS-BPEL 2.0 [BPEL07] Web Services Als Dienst (Service) bezeichnet man Funktionen (Programme), welche über eine eindeutige Netzwerkadresse zur Verfügung gestellt werden. Dienste haben eine always on Semantik, d.h. sie sind immer verfügbar. Dienste, die auf Web Technologien wie beispielsweise HTTP oder XML basieren, bezeichnet man als Web Services. Die Menge aller Standards und Technologien im Zusammenhang mit Web Services bezeichnet man gesammelt auch als Web Service Technologie [WCL+05]. Die Web Service Description Language (WSDL) ist ein vom World Wide Web Consortium (W3C) 3 veröffentlichter Standard zur Beschreibung von Web Services. Er definiert ein Modell sowie eine XML Syntax, um die abstrakte Funktionalität sowie den Zugriff auf Web Services einheitlich zu beschreiben [WSDL07] Scientific Workflow Der Ursprung der Workflow Technologie liegt in der Automatisierung von Geschäftsprozessen. In diesem Bereich werden die entwickelten Technologien auch heute noch überwiegend eingesetzt. Workflow Technologien sind jedoch nicht auf diesen einen Anwendungsbereich beschränkt. Ein Beispiel für ein weiteres Einsatzgebiet ist die Wissenschaft. Neben Theorie und Experiment hat sich der Bereich der Simulation und der Berechnung als drittes Standbein der Forschung etabliert [TDG+07]. Die Durchführung von computergestützten Berechnungen und Simulationen lässt sich ebenfalls als Prozess beschreiben. Daten müssen bewegt und bearbeitet werden, die Ausführung von Programmen oder Programmfunktionen muss koordiniert werden. In vielen Fällen handelt es sich dabei um Prozesse, welche in gleicher oder ähnlicher Form regelmäßig wiederholt werden. Diese Ausgangsbedingungen haben dazu geführt, dass Technologien aus dem Bereich der Automatisierung von Geschäftsprozessen in die Wissenschaftswelt übertragen wurden. Analog zum Begriff des Business Workflow spricht man in diesem Anwendungskontext auch von Scientific Workflow Cloud Computing Der Begriff des Cloud Computing umschreibt ein Konzept zur Bereitstellung und Nutzung von IT Ressourcen. Die Grundidee des Cloud Computing besteht darin, IT Ressourcen als Dienst in einem Netzwerk zur Verfügung zu stellen. IT Ressourcen können dabei virtuelle Maschinen, Speicher oder auch Programme sein. Sie können innerhalb eines Intranets oder aber auch über das Internet zur Verfügung gestellt werden. Die Bereitstellung als Dienst bedeutet, dass diese Ressourcen jederzeit

8 1 Einleitung und nach Bedarf einfach genutzt werden können. Die Abrechnung von Cloud Computing Diensten erfolgt üblicherweise nutzungsabhängig [BKN11], [MG11]. Die durch Cloud Computing Dienste angebotenen Funktionalitäten erstrecken sich über eine große Bandbreite. Aus diesem Grund werden die heutzutage angebotenen Cloud Computing Lösungen üblicherweise in verschiedenen Kategorien eingeteilt. Eine solche ausführliche Klassifizierung wird in [LKN+09] vorgestellt, sie ist in Abbildung 1 vereinfacht dargestellt. Im Folgenden werden die wichtigsten Kategorien von Cloud Computing Diensten kurz beschrieben. Software as a Service SaaS Platform as a Service PaaS Infrastructure as a Service IaaS Hardware Infrastructure as a Service (IaaS) Abbildung 1: Cloud Computing Infrastructure as a Service (IaaS) Dienste bieten Zugriff auf reale oder virtuelle Hardware. Neben der Bereitstellung virtueller Maschinen umfasst dies beispielsweise auch die Nutzung von Speicher- oder Netzwerkfunktionalitäten. Platform as a Service (PaaS) Platform as a Service (PaaS) Dienste bieten Ausführungsumgebungen an. Software kann entwickelt, in einer PaaS Cloud installiert und anschließend ausgeführt werden. Die angebotenen Plattform wird vom Cloud Anbieter verwaltet und skaliert automatisch. Die Realisierung eines PaaS Cloud Computing Dienstes kann auf IaaS Cloud Computing Diensten basieren. Software as a Service (SaaS) Software as a Service (SaaS) Dienste bieten Softwarefunktionalitäten als Dienst an. Die Software wird über ein Netzwerk angeboten und läuft in vielen Fällen in einem Web Browser. Die Installation und Wartung der angebotenen Software obliegt dem SaaS Anbieter. Die Realisierung eines SaaS Cloud Computing Dienstes kann auf PaaS Cloud Computing Diensten basieren. 8

9 2 Formale Sprachen, Grammatiken, Automatenmodelle 2 Formale Sprachen, Grammatiken, Automatenmodelle Im Mittelpunkt dieser Arbeit steht die Prozessbeschreibungssprache WoG (Workflow Grammatik). Der Aufbau und die Funktionsweise von Workflow Grammatiken werden in Kapitel 3 näher beschrieben. In Workflow Grammatiken wird ein Prozess nicht mit Hilfe eines Petrinetzes (wie beispielsweise in YAWL [AH05]) oder eines Graphen (wie beispielsweise in WSFL [WSFL01] oder teilweise auch in WS-BPEL [BPEL07]), sondern durch eine Grammatik beschrieben. Grammatiken werden unter anderem im Bereich der Theoretischen Informatik verwendet, sie werden aber auch in anderen Fachbereichen wie beispielsweise der Linguistik thematisiert [Mue09]. In der Theoretischen Informatik werden Grammatiken als ein mögliches Beschreibungsmittel für Formale Sprachen verwendet. Im Folgenden werden die wichtigsten Grundlagen zum Thema der Formalen Sprachen in der Theoretischen Informatik vorgestellt. Die verwendeten Bezeichnungen und Definitionen orientieren sich an [Sch08] Grundlagen Eine Sprache L ist definiert als eine (endliche oder unendliche) Menge von Wörtern. Ein Wort wiederum besteht aus Zeichen eines endlichen Alphabets Σ und besitzt eine endliche Länge. Die daraus folgende formale Definition einer Sprache lautet: L. Endliche Sprachen (also endliche Mengen von Wörtern) können direkt aufgeschrieben werden. Die Sprache L 1, welche aus allen Wörtern der Länge zwei über dem Alphabet a, b, c besteht, kann aufgeschrieben werden als L 1 aa, ab, ac, ba, bb, bc, ca, cb, cc. Mit dieser Schreibweise ist L 1 vollständig und eindeutig beschrieben. Bei unendlichen Sprachen kann diese direkte Art der Beschreibung einer Sprache nicht mehr angewendet werden. Die unendliche Sprache L 2 über dem Alphabet a, b, c, welche alle Wörter enthält, die nur aus dem Zeichen a bestehen, kann nicht direkt als Menge aufgeschrieben werden. Die Schreibweise L2 a, aa, aaa,... ist nicht eindeutig, sie ist abhängig von der Interpretation von. Allgemein benötigt man also eine Möglichkeit, unendliche Mengen mit Hilfe eines endlichen Beschreibungsmittels eindeutig und vollständig zu beschreiben. Grammatiken sind ein solches Beschreibungsmittel. Sie bestehen im Wesentlichen aus einem Regelwerk. Durch ein- oder mehrmalige Anwendung dieser Regeln können Wörter produziert werden. Das Erzeugen von Wörtern mit Hilfe einer Grammatik wird in Kapitel 4 ausführlich diskutiert. Eine Grammatik G i gehört zu einer Sprache L i, wenn durch die Anwendung der Regeln von G i genau die Menge der Wörter aus L i erzeugt wird. Man schreibt dies als Li L G i und sagt L i ist die von G i erzeugte Sprache. In Definition 1 ist der allgemeine Aufbau einer Grammatik dargestellt. G = (V, E, P, S) V = Menge der Nichtterminale (auch: Variablen) E = Menge der Terminale (auch: Alphabet) P = Menge der Produktionsregeln, P V V S = das Startsymbol, muss in V enthalten sein Definition 1: Formale Grammatik Um mit Hilfe einer Grammatik Wörter zu erzeugen, werden die Produktionsregeln einer Grammatik wiederholt angewendet. Die Menge aller Regelanwendungen zur Produktion eines Wortes bezeichnet man auch als Ableitung. Eine Ableitung beginnt immer mit dem Startsymbol und der Anwendung einer passenden Produktionsregel auf das Startsymbol. Daraus entsteht im Allgemeinen ein sogenanntes Teilwort. Ein Teilwort besteht sowohl aus Nichtterminalen als auch aus Terminalen. Ein Wort besteht, 9

10 2 Formale Sprachen, Grammatiken, Automatenmodelle im Gegensatz zu einem Teilwort, ausschließlich aus Terminalen. Auf ein Teilwort können erneut Produktionsregeln angewendet werden. Das wiederholte Anwenden von Produktionsregeln auf Teilworte wird so lange wiederholt, bis keine Produktionsregel mehr angewendet werden kann oder ein Wort erzeugt wurde. Besteht das letzte erzeugt Teilwort nur noch aus Terminalen, so ist es ein Wort der Grammatik, die Ableitung war erfolgreich. Eine Ableitung eines Wortes ist also eine Abfolge von Teilwörtern, die mit dem Startsymbol beginnt und mit dem entsprechenden Wort endet. ABC abc abc BC bc A B C a B C a b c A a Abbildung 2: Anwendung von Produktionsregeln Eine Produktionsregel beschreibt eine Ersetzung innerhalb eines Teilwortes 4. Sie kann nur dann auf ein Teilwort angewendet werden, wenn die linke Seite der Regel in dem Teilwort enthalten ist. Die Anwendung der Regel bedeutet, dass genau ein Vorkommen der linken Seite durch die rechte Seite ersetzt wird. Eine solche Ersetzung ist eine atomare Aktion. Abbildung 2 stellt die Anwendung von Produktionsregeln an einem Beispiel dar. Im ersten Schritt wird das Nichtterminal A durch das Terminal a ersetzt. Im zweiten Schritt wird das Teilwort BC durch das Teilwort bc ersetzt. In Abbildung 3 ist die Erzeugung des Wortes abc anhand einer einfachen Beispielgrammatik dargestellt. Es sind drei mögliche Ableitungen für dieses Wort dargestellt. Unter den Ableitungen sind die dazugehörigen sogenannten Ableitungsbäume dargestellt. Ableitungsbäume beschreiben ebenfalls die Ableitung eines Wortes, sie machen aber im Allgemeinen keine eindeutigen Aussagen über die Reihenfolge der Anwendung der einzelnen Regeln. Die Wurzel eines Ableitungsbaumes ist immer das Startsymbol, die Blätter beschreiben das erzeugte Wort. Zu jedem durch eine Grammatik erzeugbaren Wort kann es mehrere Ableitungen geben. Ableitungen können auf Ableitungsbäume abgebildet werden, dabei ist es möglich, dass mehrere Ableitungen auf den gleichen Ableitungsbaum abgebildet werden. Die in Abbildung 3 dargestellte Ableitung (1) wendet die gleichen Regeln wie Ableitung (3) an, die beiden Ableitungen unterscheiden sich lediglich in der Reihenfolge der Regelanwendungen. Sie werden in diesem Beispiel beide auf den linken Ableitungsbaum abgebildet. Dies verdeutlicht, dass ein Ableitungsbaum mehrere Ableitungen 4 Grammatiken sind eine spezielle Form sogenannter Semi-Thue Systeme, die auch als Wortersetzungssysteme bezeichnet werden [Tho10]. Im Gegensatz zu Grammatiken gibt es in Semi-Thue Systemen beispielsweise kein explizites Startsymbol und keine Unterscheidung in Terminale und Nichtterminale. 10

11 2 Formale Sprachen, Grammatiken, Automatenmodelle beschreiben kann. Die Ableitung (2) verwendet dagegen andere Regeln als die Ableitungen (1) und (3), demzufolge wird diese Ableitung auf den rechten Ableitungsbaum abgebildet. Eine Grammatik, in der es für ein Wort mehr als einen Ableitungsbaum gibt, nennt man mehrdeutig. S ABC AB ab BC bc A a C c (1) S ABC abc abc (2) S ABC abc abc (3) S ABC ABc abc S S ABC ABC ab c a bc Abbildung 3: Grammatik, Ableitung und Ableitungsbaum Eine zweite Möglichkeit, Sprachen (und insbesondere auch unendliche Sprachen) zu beschreiben, sind Automaten. Die unterschiedlichen Automatenmodelle, die zur Beschreibung formaler Sprachen verwendet werden, bezeichnet man auch als Akzeptoren [WH09]. Dieser Begriff leitet sich aus ihrer Funktionsweise ab. Ein Automat (im Sinne der formalen Sprachen) bekommt ein Wort übergeben und beginnt dann zu arbeiten. Der Automat kann seine Arbeit in endlicher Zeit beenden oder aber auch unendlich lange laufen. Wenn er seine Arbeit beendet, dann akzeptiert er das Wort oder er akzeptiert es nicht. Wie genau dieses Akzeptieren oder nicht Akzeptieren geschieht, ist unterschiedlich und abhängig vom Automatenmodell und seiner formalen Definition. Das Akzeptieren oder nicht Akzeptieren kann beispielsweise durch den Zustand signalisiert werden, in dem sich der Automat nach seiner Terminierung befindet. Es ist aber auch möglich, das Akzeptieren oder nicht Akzeptieren durch eine explizite Ausgabe zu zeigen. Automaten bekommen ihre Eingabe auf einem Eingabeband übergeben. Sie können, beginnende beim ersten Zeichen, die gesamte Eingabe schrittweise von links nach rechts einlesen. Ist die Eingabe einmal eingelesen, ist keine weitere Operation auf dem Eingabeband mehr möglich. Ähnlich zum Eingabeband besitzen einige Automatenmodelle ein Ausgabeband. Diese Band ist zu Beginn leer. Es kann zeichenweise von links nach rechts beschrieben werden. Vom Ausgabeband kann nicht gelesen werden. Geschriebene Zeichen können nicht verändert oder überschrieben werden. Neben Eingabeund Ausgabeband besitzen die mächtigeren Automatenmodelle, wie beispielsweise Turingmaschinen, ein Arbeitsband. Auf dem Arbeitsband kann beliebig gelesen und geschrieben werden. Automaten können sich auf dem Eingabeband frei bewegen. Die zu einem Automaten M i gehörende Sprache L i ist die Menge aller Wörter, die dieser Automat akzeptiert. Man sagt auch L i ist die von M i akzeptierte Sprache und schreibt Li L M i. Der Aufbau eines Automaten hängt vom verwendeten Automatenmodell ab. Die einzelnen Modelle und ihre formale Definition werden im folgenden Kapitel beschrieben. Vorausgreifend sei aber hier schon festgehalten, dass die Definition eines Automaten, ebenso wie die einer Grammatik, endlich ist. Damit bilden Automaten ein weiteres endliches Beschreibungsmittel für unendliche Sprachen. 11

12 2 Formale Sprachen, Grammatiken, Automatenmodelle 2.2. Klassifikation von Formalen Sprachen In der Theoretischen Informatik unterscheidet man verschiedenen Typen, oder auch Klassen, von Sprachen. Die bekannteste und grundlegendste Klassifizierung ist die Chomsky-Hierarchie. Sie ist in Abbildung 4 dargestellt. Die Menge aller Sprachen enthält dabei auch die Sprachen, die nicht durch Grammatiken darstellbar sind. Die Menge der Typ 0 Sprachen entspricht der Menge der Sprachen, die durch Grammatiken darstellbar sind. Die Chomsky Hierarchie ist eine Untermengenkonstruktion, das bedeutet, dass jede Sprache vom Typ x immer auch eine Sprache vom Typ x-1 ist (beispielsweise ist jede reguläre Sprache immer auch kontextfrei). alle Sprachen Typ 0 (rekursiv aufzählbar) Typ 1 kontextsensitiv Typ 2 kontextfrei Typ 3 regulär Abbildung 4: Chomsky Hierarchie Die Definition der Chomsky Hierarchie erfolgt über Grammatiken, sie klassifiziert also im Grunde keine Sprachen, sondern Grammatiken. Im vorherigen Kapitel wurde jedoch bereits ausführlich beschrieben, dass jede Grammatik immer auch eine Sprache beschreibt. Demzufolge kann die Chomsky Hierarchie sowohl auf Grammatiken als auch auf Sprachen angewendet werden. Ein ähnlicher Zusammenhang besteht, wie ebenfalls bereits beschrieben, zwischen Sprachen und Automaten. Zu den Sprachen jedes Chomsky Typs gibt es immer auch ein Automatenmodell, welches genau die Sprachen dieses Typs erkennen kann. Die den einzelnen Chomsky Typen zugeordneten Automatenmodelle unterscheiden sich sowohl ihrer Mächtigkeit als auch in ihrem Laufzeitverhalten. Ein Endlicher Automat kann beispielsweise nur Typ 3 Sprachen erkennen, dafür tut er dies in linearer Zeit. Ein Kellerautomat kann dagegen zusätzlich auch Typ 2 Sprachen erkennen, dafür kann er dies aber im allgemeinen Fall nicht in linearer Zeit tun. Die Klassifizierung von Sprachen nach der Chomsky Hierarchie erlaubt es, detaillierte Aussagen über ihre Eigenschaften zu machen. Im Folgenden werden ein paar Beispiele genannt. Ist eine Sprache regulär, dann ist diese Sprache in linearer Zeit entscheidbar. Ist sie dagegen kontextsensitiv, dann ist sie weiterhin entscheidbar, aber nicht mehr in linearer Zeit. Das Äquivalenzproblem ( Erzeugen zwei Grammatiken die gleiche Sprache? ) ist für Typ 3 Grammatiken entscheidbar, für Typ 2 Grammatiken dagegen bereits nicht mehr. In den folgenden Unterkapiteln werden die Sprachklassen gemäß der Chomsky Hierarchie beschrieben. Zu jeder Sprachklasse werden der entsprechende Grammatiktyp sowie das dazugehörige Automatenmodell vorgestellt und formal definiert. 12

13 Reguläre Sprachen (Chomsky Typ 3) 2 Formale Sprachen, Grammatiken, Automatenmodelle Reguläre Sprachen stellen in der Chomsky Hierarchie die kleinste Sprachklasse dar. Reguläre Sprachen können durch reguläre Grammatiken oder durch reguläre Ausdrücke beschrieben werden. Reguläre Sprachen werden durch (sowohl deterministische als auch nichtdeterministische) endliche Automaten erkannt Reguläre Grammatiken Reguläre Sprachen können durch reguläre Grammatiken beschrieben werden. Eine Grammatik ist regulär, wenn ihre Regeln den folgenden Einschränkungen gehorchen. Die linke Seite einer Regel muss aus genau einem Nichtterminal bestehen. Die rechte Seite einer Regel muss entweder aus genau einem Terminal oder aus einem Terminal gefolgt von einem Nichtterminal aufgebaut sein. Eine Grammatik mit derartigen Regeln nennt man auch rechtsregulär (die Anwendung der Regeln lässt ein Wort nach rechts wachsen). Eine alternative und äquivalente Definition einer regulären Grammatik fordert für die rechte Seite einer Regel, dass sie aus einem Nichtterminal gefolgt von einem Terminal besteht. Eine so definierte Grammatik nennt man linksregulär. In dieser Arbeit wird der Begriff regulär als Synonym für rechtsregulär verwendet. G 1 = (N 1, T 1, P 1, S), N 1 = {S, B}, T 1 = {0, 1} P 1 = { S 0, S 1, S 1B, B 0B, B 1B, B 0, B 1} Listing 1: Beispiel für eine rechtsreguläre Grammatik Ein Beispiel für eine rechtsreguläre Grammatik ist in Listing 1 dargestellt. Die Grammatik G 1 beschreibt die Menge aller Binärzahlen ohne führende Nullen. Die gleiche Sprache wird von der in Listing 2 L G L. dargestellten linksregulären Grammatik G 2 erzeugt. Formal ausgedrückt gilt also G 2 = (N 2, T 2, P 2, S), N 2 = {S, B}, T 2 = {0, 1} P 2 = { S 0, S 1, S B0, S B1, B B0, B B1, B 1} Listing 2: Beispiel für eine linksreguläre Grammatik 1 G Reguläre Ausdrücke Eine weitere Beschreibungsmöglichkeit für reguläre Sprachen sind reguläre Ausdrücke. Reguläre Ausdrücke beschreiben Wortmengen durch eine Art Muster und sind aufgrund ihrer kompakten Darstellung in der Praxis weit verbreitet. 13

14 2 Formale Sprachen, Grammatiken, Automatenmodelle In Definition 2 werden reguläre Ausdrücke über dem Alphabet Σ formal definiert. Die Regeln (1) und (2) definieren zunächst atomare reguläre Ausdrücke. Die Regeln (3) und (4) erweitern die Definition regulärer Ausdrücke rekursiv. (1) ε Das leere Wort ist ein regulärer Ausdruck. (2) a Jedes Zeichen des Alphabets Σ ist ein regulärer Ausdruck. (3) a b Sind a und b reguläre Ausdrücke, dann ist auch ihre Vereinigung ein regulärer Ausdruck. (4) a* Ist a ein regulärer Ausdruck, so sind auch beliebige Konkatenationen von a ein regulärer Ausdruck (Kleene Operator, endlicher Abschluss). a 0 = ε a 3 = aaa Definition 2: Reguläre Ausdrücke Ein Beispiel für einen regulären Ausdruck ist in Listing 3 dargestellt. Der reguläre Ausdruck BIN beschreibt die gleiche Sprache wie die in Listing 1 und Listing 2 aufgeführten Grammatiken, also die Menge aller Binärzahlen ohne führende Nullen. Es gilt L BIN) L( G ) L( ). BIN = 0 1(0 1)* ( 1 G2 Listing 3: Beispiel für einen regulären Ausdruck Endliche Automaten Ein endlicher Automat liest ein Wort zeichenweise ein. Abhängig von den eingelesenen Zeichen navigiert er durch einen Zustandsgraphen. Ist das Wort komplett eingelesen und der Automat befindet sich ein einem Endzustand, so akzeptiert er das Wort. Befindet er sich dagegen in einem Zustand, der kein Endzustand ist, akzeptiert er das Wort nicht. DEA = (Z, Σ, δ, z 0, E) Z = Menge der Zustände Σ = Eingabealphabet, Z 0 δ = Überführungsfunktion, z 0 = Startzustand, z 0 Z E = Menge der Endzustände, : Z Z E Z Definition 3: Endlicher Automat Definition 3 beschreibt einen Deterministischen Endlichen Automaten formal. Die Überführungsfunktion δ beschreibt das Verhalten des Automaten. Sie definiert die Zustandsübergänge des Automaten abhängig von den eingelesenen Zeichen. Der wesentliche Unterschied zwischen einem Deterministischen Endlichen Automaten (DEA) und einem Nichtdeterministischem Endlichen Automaten (NEA) besteht in den Zustandsübergängen. Ein DEA darf, ausgehend von einem beliebigen Zustand, für jedes mögliche Zeichen höchstens einen Übergang besitzen. Ein NEA unterliegt dieser Beschränkung nicht. Die Definition der Überführungsfunktion eines 14

15 Nichtdeterministischen Endlichen Automaten lautet dann Potenzmenge. 2 Formale Sprachen, Grammatiken, Automatenmodelle : Z Z, P bezeichnet dabei die Eingabe Wenn auf dem Eingabeband eine 1 steht, dann lies diese Zeichen und gehe in den Zustand B oder in den Zustand E. 1 0, 1 B 0, 1 Wenn auf dem Eingabeband ein 0 oder eine 1 steht, dann lies diese Zeichen und gehe in den Zustand E. S 0, 1 E Abbildung 5: Endlicher Automat, nichtdeterministisch (NEA) Abbildung 5 stellt den NEA M 1 dar, der genau die Sprache aller Binärzahlen ohne führende Nullen akzeptiert. Der in Abbildung 6 dargestellte DEA M 2 erkennt die gleiche Sprache wie M 1. Damit gilt L M ) L( M ) L( BIN) L( G ) L( ). ( G2 0, 1 1 E1 S 0 E2 Abbildung 6: Endlicher Automat, deterministisch (DEA) Kontextfreie Sprachen (Chomsky Typ 2) Kontextfreie Sprachen stellen in der Chomsky Hierarchie die nächst höhere Sprachklasse oberhalb der regulären Sprachen dar. Kontextfreie Sprachen können durch kontextfreie Grammatiken beschrieben werden. Kontextfreie Sprachen werden durch (nichtdeterministische) Kellerautomaten erkannt Kontextfreie Grammatiken Kontextfreie Sprachen können durch kontextfreie Grammatiken beschrieben werden. Eine Grammatik ist kontextfrei, wenn ihre Regeln den folgenden Einschränkungen gehorchen. 15

16 2 Formale Sprachen, Grammatiken, Automatenmodelle Die linke Seite einer Regel muss aus genau einem Nichtterminal bestehen. Die rechte Seite einer Regel muss mindestens ein Terminal oder Nichtterminal enthalten, ansonsten ist sie keinerlei Einschränkungen unterworfen. G 3 = (N 3, T 3, P 3, S), N 3 = {S }, T 3 = {a, b} P 3 = { S ab, S asb} Listing 4: Beispiel für eine kontextfreie Grammatik Ein einfaches Beispiel für eine kontextfreie Grammatik ist in Listing 4 dargestellt. Die Grammatik G 3 beschreibt die Menge aller Wörter die aus einer Menge von a gefolgt von der gleichen Anzahl von b bestehen, also beispielsweise ab oder aaabbb Kellerautomaten Ein Kellerautomat besitzt, im Gegensatz zu Endlichen Automaten, einen Speicher. Dieser Speicher ist als Keller organisiert (FIFO: First In, First Out), es kann immer nur das oberste Element gelesen werden. Ein Kellerautomat kann in jedem Schritt ein oder kein Zeichen vom Eingabeband einlesen. Abhängig vom eingelesenen Zeichen und dem obersten Element des Kellers navigiert er durch einen Zustandsgraphen. Bei jedem Übergang können beliebig viele Elemente im Kellerspeicher abgelegt werden. Ein Kellerautomat besitzt (in der in dieser Arbeit verwendeten Definition) keine Endzustände. Ein Wort wird genau dann akzeptiert, wenn es komplett eingelesen ist und der Kellerspeicher anschließend leer ist. Ist der Kellerspeicher nach dem Einlesen des Wortes nicht leer, so wird dieses Wort nicht akzeptiert. Kellerautomat = (Z, Σ, Γ, δ, z 0, #) Z = Menge der Zustände Σ = Eingabealphabet Γ = Kelleralphabet δ = Überführungsfunktion, endlichen Teilmengen z 0 = Startzustand, z 0 Z : Z P Z e, P e bezeichnet dabei alle # = das unterste Kellerzeichen, #, repräsentiert den leeren Keller Definition 4: (Nichtdeterministischer) Kellerautomat Definition 4 beschreibt einen Nichtdeterministischen Kellerautomaten. Wir im Folgenden von Kellerautomaten gesprochen, dann sind immer Nichtdeterministische Kellerautomaten gemeint. Deterministische Kellerautomaten sind nicht äquivalent zu Nichtdeterministischen Kellerautomaten. Deterministische Kellerautomaten können genau die Menge der deterministisch kontextfreien Sprachen erkennen. Diese Menge ist eine echte Untermenge der kontextfreien Sprachen. 16

17 2 Formale Sprachen, Grammatiken, Automatenmodelle Wenn auf dem Eingabeband ein a steht und auf dem Keller irgendein Zeichen, dann lies das Zeichen vom Eingabeband, lege ein zusätzliches A auf den Keller, und bleibe im Zustand S. Wenn auf dem Eingabeband ein b steht und auf dem Keller ein A, dann lies das Zeichen vom Eingabeband, entferne das A vom Keller, und gehe in den Zustand Z bzw. bleibe im Zustand Z. (a,x), (xa) (b,a), (-) S (b,a), (-) Z A A A # Kellerspeicher Eingabe a a a b b b Abbildung 7: (Nichtdeterministischer) Kellerautomat Abbildung 7 stellt einen Kellerautomaten dar, der genau die Sprache erkennt, welche durch die in Listing 4 definierte Grammatik beschrieben wird. Für jedes gelesene a wird ein A auf dem Keller abgelegt. Für jedes anschließend eingelesene b wird wieder ein A entfernt. Enthält das eingelesene Wort also gleiche viele a und b, dann ist der Keller am Ende wieder leer, das Wort wird also akzeptiert. Durch den nur einmal möglichen Übergang vom Zustand S in den Zustand Z wird zusätzlich sichergestellt, dass zuerst nur a und danach nur b eingelesen werden können Kontextsensitive Sprachen (Chomsky Typ 1) Kontextsensitive Sprachen stellen in der Chomsky Hierarchie die nächst höhere Sprachklasse oberhalb der kontextfreien Sprachen dar. Kontextsensitive Sprachen können durch kontextsensitive Grammatiken beschrieben werden. Kontextsensitive Sprachen werden durch linear beschränkt Turingmaschinen (LBA, Linear Bounded Automaton) erkannt Kontextsensitive Grammatiken Kontextsensitive Sprachen können durch kontextsensitive Grammatiken beschrieben werden. Eine Grammatik ist kontextsensitiv, wenn ihre Regeln der folgenden Einschränkung gehorcht. Die rechte Seite einer Regel muss mindestens so viele Elemente wie die linke Seite enthalten (sie muss mindestens gleich lang oder länger sein), ansonsten ist sie keinerlei Einschränkungen unterworfen. Das bedeutet, dass die Teilwörter einer Ableitung niemals kleiner werden dürfen. Sie müssen immer wachsen oder zumindest gleich groß bleiben. Diese Eigenschaft stellt die Entscheidbarkeit von Typ 1 Sprachen sicher. 17

18 2 Formale Sprachen, Grammatiken, Automatenmodelle G 4 = (N 4, T 4, P 4, S), N 4 = {S, B, C, H}, T 4 = {a, b, c} P 3 = { S asbc, S abc, CB HB, HB HC, HC BC, ab ab, bb bb, bc bc, cc cc} Listing 5: Beispiel für eine kontextsensitive Grammatik Ein Beispiel für eine kontextsensitive Grammatik ist in Listing 5 dargestellt. Die Grammatik G 4 beschreibt die Menge aller Wörter die aus einer Menge von a gefolgt von der gleichen Anzahl von b und c bestehen, also beispielsweise abc oder aaabbbccc Linear beschränkte Turingmaschinen (LBA) Linear beschränkte Turingmaschinen (LBA) sind allgemeine Turing Maschinen (TM), die den Bereich des Arbeitsbandes, auf dem das Eingabewort steht, während ihrer Ausführung nie verlassen. Der Aufbau und die Arbeitsweise allgemeiner Turing Maschinen wird im Kapitel kurz beschrieben Rekursiv aufzählbare Sprachen (Chomsky Typ 0) Rekursiv aufzählbare (semi-entscheidbare) Sprachen stellen in der Chomsky Hierarchie die nächst höhere Sprachklasse oberhalb der kontextfreien Sprachen dar. Rekursiv aufzählbare Sprachen können durch Typ 0 Grammatiken beschrieben werden. Rekursiv aufzählbare Sprachen werden durch Turingmaschinen (TM) erkannt Typ 0 Grammatiken Typ 0 Sprachen können durch allgemeine formale Grammatiken beschrieben werden. Eine solche Grammatik unterliegt keinerlei Einschränkungen, ihr Aufbau wird durch die bereits vorgestellte Definition 1: Formale Grammatik beschrieben Turingmaschinen (TM) Die bisher vorgestellten Automatenmodelle bekommen ein Wort übergeben und können dieses zeichenweise einlesen. Sie besitzen, wenn überhaupt, nur eingeschränkte Speichermöglichkeiten. Endliche Automaten besitzen keinerlei Speicher, Kellerautomaten besitzen einen eingeschränkten Speicher, den Kellerspeicher. Eine Turingmaschine (TM) dagegen bekommt das Eingabewort auf einem sogenannten Band übergeben. Die Größe des Bandes ist im Allgemeinen unbeschränkt. Sie kann sich auf diesem Band frei bewegen (in jedem Schritt eine Position nach links oder rechts) und dabei einzelne Zeichen sowohl lesen als auch schreiben. Das Verhalten einer Turingmaschine wird, ähnlich wie bei den anderen Automatenmodellen, über eine Überführungsfunktion definiert. Abhängig vom aktuellen Zustand und dem Zeichen auf dem Band kann der Zustand gewechselt, ein Zeichen auf das Band geschrieben und die Position auf dem Band verändert werden. 18

19 2 Formale Sprachen, Grammatiken, Automatenmodelle Kellerautomat = (Z, Σ, Γ, δ, z 0, #, E) Z = Menge der Zustände Σ = Eingabealphabet Γ = Bandalphabet, δ = Überführungsfunktion, : Z Z L, R, N, {L,R,N} bezeichnet dabei die möglichen Bewegungen links, rechts und stehen bleiben z 0 = Startzustand, z 0 Z b = das Blank, repräsentiert ein leeres Feld auf dem Band, E = Menge der Endzustände, E Z b Definition 5: Turingmaschine Turingmaschinen werden als das mächtigste aller Automatenmodelle angesehen. Diese Auffassung wird in der Churchschen These formuliert, sie ist in Definition 6 dargestellt. Die Churchsche These besagt, dass alles, was im menschlich intuitiven Sinne berechenbar ist, mit einer Turingmaschine berechenbar ist. Das Modell der Turingmaschine ist damit ein universelles Automatenmodell. Die durch die formale Definition der Turing-Berechenbarkeit erfasste Klasse von Funktionen stimmt genau mit der Klasse der im intuitiven Sinne berechenbaren Funktionen überein. Definition 6: Churchsche These (nach [Sch08]) 19

20 3 Workflow Grammatiken (WoG) 3 Workflow Grammatiken (WoG) Workflow Grammatiken als Beschreibungsmittel für ausführbare Prozesse wurden in [Vuk11] entwickelt und ausführlich beschrieben. Workflow Grammatiken sind formale Grammatiken, die als Prozessmodelle interpretiert werden können. Viele Workflowsprachen sind graphbasiert. Ein Prozessmodell wird mit Hilfe von Knoten und Kanten modelliert. Die Knoten stellen Aktivitäten dar, die Kanten definieren Kontroll- oder Datenfluss. Workflow Grammatiken dagegen sind formale Grammatiken, die mit einer zusätzlichen Semantik angereichert werden. Nichtterminale können laufende Aktivitäten oder Variablen repräsentieren, Terminale stehen für beendete Aktivitäten. Eine Produktionsregel einer Workflow Grammatik beschreibt eine Aktion, die während der Ausführung des durch die Workflow Grammatik beschriebenen Prozessmodells durchgeführt werden kann. Eine Ableitung entspricht der Ausführung eines Prozesses, ein Wort beschreibt eine beendete Prozessinstanz. Die für die Ausführung von Workflow Grammatiken wesentlichen Aspekte werden in Kapitel 4 detailliert behandelt. Im Folgenden wird zunächst der Entwurf von Workflow Grammatiken kurz motiviert, anschließend werden die einzelnen Konstrukte zur Modellierung eines Prozess mit Hilfe einer Grammatik vorgestellt. Dieses Kapitel stellt damit im Wesentlichen eine Zusammenfassung von [Vuk11] mit dem Fokus auf die in dieser Arbeit relevanten Aspekte von Workflow Grammatiken dar Motivation Es existieren viele unterschiedliche Sprachen für die Modellierung von Prozessen. Sie unterscheiden sich in ihren Fähigkeiten, ihren bevorzugten Anwendungsbereichen und können völlig unterschiedliche Paradigmen verfolgen. Der Entwurf von Workflow Grammatiken verfolgt das Ziel, dass alle diese Workflow Sprachen auf Workflow Grammatiken abgebildet werden können. Dies bedeutet, dass zu jedem beliebigen Prozessmodell eine (Ausführungs-) äquivalente Workflow Grammatik angegeben werden kann. Diese Eigenschaft bringt zwei große Vorteile mit sich, die hier kurz dargestellt werden sollen. Prozessmodelle unterschiedlicher Modellierungssprachen sind in vielen Fällen schwer zu vergleichen. Es können unterschiedliche Modellierungsparadigmen benutzt werden, die gleichen (gleich benannten) Konstrukte können unterschiedliche Semantiken besitzen. Bildet man diese Prozessmodelle jedoch auf Workflow Grammatiken ab, dann können sie auf dieser einheitlichen Basis sinnvoll verglichen werden. Ebenso möglich ist eine Klassifizierung einzelner Modellierungssprachen, indem ihre Abbildung auf Workflow Grammatiken allgemein beschrieben und anschließend analysiert wird. Der zweite Vorteil der Verwendung von Workflow Grammatiken beruht darauf, dass unterschiedliche Workflowsprachen in den meisten Fällen unterschiedliche Ausführungsumgebungen, also spezielle Workflow Engines, benötigen. Durch die Verwendung von Workflow Grammatiken kann erreicht werden, dass Prozessmodelle unterschiedlicher Modellierungssprachen auf der gleichen Workflow Engine ausgeführt werden können. Werden Prozessmodelle vor ihrer Ausführung in Workflow Grammatiken transformiert, dann wird zur Ausführung dieser Prozessmodelle lediglich eine Workflow Engine für Workflow Grammatiken benötigt. Abbildung 8 stellt dar, wie Prozessmodelle unterschiedlicher Modellierungssprachen auf einer einzigen Workflow Engine ausgeführt werden können. Eine ähnliche Motivation lag dem Entwurf von BPEL zugrunde. Im Bereich der Business Workflows existieren vielfältige Modellierungssprachen. Zur Ausführung der mit unterschiedlichen Sprachen erstellten Prozessmodelle werden unterschiedliche Workflow Engines benötigt. BPEL wurde mit dem Ziel entworfen, eine einheitliche 20

Transformation von BPEL Prozessmodellen in Grammatikbasierte Prozessmodelle

Transformation von BPEL Prozessmodellen in Grammatikbasierte Prozessmodelle Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 D - 70569 Stuttgart Diplomarbeit Nr. 3164 Transformation von BPEL Prozessmodellen in Grammatikbasierte Prozessmodelle

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Sprachen/Grammatiken eine Wiederholung

Sprachen/Grammatiken eine Wiederholung Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

8. Turingmaschinen und kontextsensitive Sprachen

8. Turingmaschinen und kontextsensitive Sprachen 8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv aufzählbare Sprachen Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht

Mehr

Zusammenfassung Grundzüge der Informatik 4

Zusammenfassung Grundzüge der Informatik 4 Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die

Mehr

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf)

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Business Process Execution Language. Christian Vollmer Oliver Garbe

Business Process Execution Language. Christian Vollmer <christian.vollmer@udo.edu> Oliver Garbe <oliver.garbe@udo.edu> Business Process Execution Language Christian Vollmer Oliver Garbe Aufbau Was ist BPEL? Wofür ist BPEL gut? Wie funktioniert BPEL? Wie sieht BPEL aus?

Mehr

Theoretische Informatik Testvorbereitung Moritz Resl

Theoretische Informatik Testvorbereitung Moritz Resl Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie Teil V Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie Zwei Sorten von Grammatiken Kontextsensitive Grammatik (CSG) (Σ, V, P, S), Regeln der Form αaβ αγβ α, β (Σ V ),

Mehr

Aufgabentypen die in der Klausur vorkommen

Aufgabentypen die in der Klausur vorkommen Aufgabentypen die in der Klausur vorkommen können 1. Nennen Sie fünf wichtige Anwendungsgebiete der Computerlinguistik. 2. Für welches der drei Anwendungsgebiete Maschinelle Übersetzung, Rechtschreibkorrektur

Mehr

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009 Theoretische Informatik Rainer Schrader Institut für Informatik 9. Juli 2009 1 / 41 2 / 41 Gliederung die Chomsky-Hierarchie Typ 0- Typ 3- Typ 1- Die Programmierung eines Rechners in einer höheren Programmiersprache

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Deterministische Kellerautomaten

Mehr

Tutorium zur theoretischen Informatik Übungsblatt 4 (2006-12-13)

Tutorium zur theoretischen Informatik Übungsblatt 4 (2006-12-13) Ein verständiges Herz erwirbt Kenntnisse, und das Ohr der Weisen lauscht dem Wissen. (Die Bibel, "Buch der Sprüche", Kapitel 18 Vers 15) Inhalt 1. Empfehlenswerte Referenzen 2. Aufgabe 1 CF Grammatik für

Mehr

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange

Mehr

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Frank Heitmann heitmann@informatik.uni-hamburg.de 13. Mai 2014 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/17 Überblick Wir hatten

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Lösungen zur 3. Projektaufgabe TheGI1

Lösungen zur 3. Projektaufgabe TheGI1 Marco Kunze (makunze@cs.tu-berlin.de) WS 2001/2002 Sebastian Nowozin (nowozin@cs.tu-berlin.de) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik - das Quiz zur Vorlesung Teil I - Grundzüge der Logik In der Logik geht es um... (A) die Formen korrekten Folgerns (B) die Unterscheidung von wahr und falsch (C) das Finden von

Mehr

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Formale Sprachen Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Inhaltsübersicht und Literatur Formale Sprachen: Definition und Darstellungen Grammatiken für formale Sprachen

Mehr

11.1 Kontextsensitive und allgemeine Grammatiken

11.1 Kontextsensitive und allgemeine Grammatiken Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Grundbegriffe. Grammatiken

Grundbegriffe. Grammatiken Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte

Mehr

Sprachen und Automaten. Tino Hempel

Sprachen und Automaten. Tino Hempel Sprachen und Automaten 11 Tino Hempel Bisherige Automaten Automat mit Ausgabe/Mealy-Automat Akzeptor, Sprache eines Akzeptors Grenze: L = {a n b n } Kellerautomat erkennt L = {a n b n } Grenze:? T. Hempel

Mehr

ARBEITSBLATT ZU FORMALEN SPRACHEN

ARBEITSBLATT ZU FORMALEN SPRACHEN ARBEITSBLATT ZU FORMALEN SPRACHEN Aufgabe 1: Gegeben ist die folgende Formale Sprache L(G) mit G = (T, N, P, S). Die Produktionen lauten ZUWEISUNG ::= name zuweisungsoperator AUSDRUCK semikolon AUSDRUCK

Mehr

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen. Turing-Maschinen Nachdem wir endliche Automaten und (die mächtigeren) Kellerautomaten kennengelernt haben, werden wir nun ein letztes, noch mächtigeres Automatenmodell kennenlernen: Die Turing-Maschine

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19 Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprachen bedeutend für die Syntaxdefinition von Programmiersprachen (Compilerbau) Automaten

Mehr

Business Process Execution Language for Web Services (BPEL4WS)

Business Process Execution Language for Web Services (BPEL4WS) Hauptseminar und Vorlesung Web Services WS 2003/04 Business Process Execution Language for Web Services (BPEL4WS) Patrick Sauter 2/17 Vortrag - Überblick Definition, Zielsetzung und Allgemeines einfacher

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Informatik IC2. Balazs Simon 2005.03.26.

Informatik IC2. Balazs Simon 2005.03.26. Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................

Mehr

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 17. DIE KONTEXTFREIEN SPRACHEN II: ABSCHLUSSEIGENSCHAFTEN, MASCHINENCHARAKTERISIERUNG, KOMPLEXITÄT Theoretische

Mehr

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen Grammatiken Reguläre Sprachen und endliche Automaten Kontextfreie Sprachen und Kellerautomaten Kontextsensitive und Typ 0-Sprachen 3 Berechenbarkeitstheorie

Mehr

6 Kontextfreie Grammatiken

6 Kontextfreie Grammatiken 6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

Syntax (= Satzgefüge), vgl. auch Grammatik

Syntax (= Satzgefüge), vgl. auch Grammatik 1 Natürliche Sprachen Natürliche Sprachen bezeichnen wie das Wort "Sprache" ausdrückt zunächst das Gesprochene. Das Schweizerdeutsch etwa ist eine typische natürliche Sprache. Mit der Erfindung der Aufzeichnung

Mehr

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

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III Name Vorname Matrikelnummer Universität Karlsruhe Institut für Theoretische Informatik o. Prof. Dr. P. Sanders 26. Feb. 2007 Klausur: Informatik III Aufgabe 1. Multiple Choice 10 Punkte Aufgabe 2. Teilmengenkonstruktion

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

Mehr

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Grammatiken und die Chomsky-Hierarchie

Grammatiken und die Chomsky-Hierarchie Grammatiken und die Chomsky-Hierarchie Def.: Eine Grammatik G=(Σ,V,S,R) besteht aus endlichem Alphabet Σ endlicher Variablenmenge V mit V Σ= Startsymbol SєV endlicher Menge R с (V Σ) + x(v Σ)* von Ableitungsregeln

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Syntax WS 2006/2007 Manfred Pinkal Einführung in die Computerlinguistik 2006/2007 M. Pinkal UdS 1 Morphologie und Syntax Gegenstand der Morphologie ist die Struktur

Mehr

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al. Folie: 1 Kapitel 4 Übersicht Übersicht Syntax: Definition 4 syn-tax: the way in which words are put together to form phrases, clauses, or sentences. Webster's Dictionary Die Syntax (griechisch σύνταξις

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Automaten, Formale Sprachen und Berechenbarkeit I. Skript zur Vorlesung im WS 2001/02 an der TU München

Automaten, Formale Sprachen und Berechenbarkeit I. Skript zur Vorlesung im WS 2001/02 an der TU München Automaten, Formale Sprachen und Berechenbarkeit I Skript zur Vorlesung im WS 2001/02 an der TU München Ekkart Kindler Steffen Manthey Version: 1.30 vom 30. April 2002 ii Redaktioneller Hinweis: Es gibt

Mehr

Prädikatenlogik - Micromodels of Software

Prädikatenlogik - Micromodels of Software Prädikatenlogik - Micromodels of Software Philipp Koch Seminar Logik für Informatiker Universität Paderborn Revision: 30. Mai 2005 1 Inhaltsverzeichnis 1 Motivation 3 2 Modelle 3 2.1 Definition eines Modells.......................

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 8

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 8 Prof. Dr. Wilhelm Schäfer Paderborn, 8. Dezember 2014 Christian Brenner Tristan Wittgen Besprechung der Aufgaben: 15. - 18. Dezember 2014 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

1 Syntax von Programmiersprachen

1 Syntax von Programmiersprachen 1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme

Mehr

1 YAWL Yet Another Workflow Language

1 YAWL Yet Another Workflow Language 1 YAWL Yet Another Workflow Language Das YAWL Workflow-Management-System wurde von Wil van der Aalst und seinem Team an der Eindhoven University of Technology entwickelt. Das System ist in seiner jetzigen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten Sprachliche Informationsverarbeitung 29.01.2007 HS Intelligente Systeme Prof. Dr. J. Rolshoven (WS 06/07) Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten Referentin: Melinda

Mehr

effektives Verfahren ~ Algorithmus (Al Chwarismi) Regelsystem, Methode, Rezept, Gebrauchsanleitung Programm (griech. προγραφω, vor-schreiben)

effektives Verfahren ~ Algorithmus (Al Chwarismi) Regelsystem, Methode, Rezept, Gebrauchsanleitung Programm (griech. προγραφω, vor-schreiben) effektive Verfahren Ein Verfahren ist effektiv, wenn es für jeden Fall, der in einem zuvor abgegrenzten Bereich von eindeutigen Unterscheidungen auftreten kann, eine eindeutige und ausführbare Handlungsanweisung

Mehr

Flexibilität im Prozess mit Oracle Business Rules 11g

Flexibilität im Prozess mit Oracle Business Rules 11g Flexibilität im Prozess mit Oracle Business Rules 11g Michael Stapf ORACLE Deutschland GmbH Frankfurt Schlüsselworte: Geschäftsregeln, Business Rules, Rules Engine, BPEL Process Manager, SOA Suite 11g,

Mehr

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1 Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4 Kapitel 4: Schaltungen mit Delays Seite 1 Schaltungen mit Delays Inhaltsverzeichnis 4.1 Einführung 4.2 Addierwerke

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs

Mehr

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel 2. Turingmaschinen Zur Formalisierung von Algorithmen benutzen wir hier Turingmaschinen. Von den vielen Varianten dieses Konzeptes, die sich in der Literatur finden, greifen wir das Konzept der on-line

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

Geschäftsprozessmodellierung essmodellierung mit BPEL

Geschäftsprozessmodellierung essmodellierung mit BPEL Geschäftsprozessmodellierung essmodellierung mit BPEL Autor: Stefan Berntheisel Datum: 8. Januar 2010 Stefan Berntheisel Hochschule RheinMain Fachseminar WS 09/10 Agenda Grundlagen Business Process Execution

Mehr

Theoretische Informatik 2

Theoretische Informatik 2 Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder

Mehr

Z 50. Z O Z Int Z Komma Z Real Ziffer Komma Ziffer

Z 50. Z O Z Int Z Komma Z Real Ziffer Komma Ziffer 10 Endliche Automaten 10.1 Einführungsbeispiele Beispiel 1: Warenautomat Ein Flasche Cola kostet 1,50. Münzen zu 1 und 50 ct werden angenommen. Cola und evtl. Restgeld werden ausgegeben. Auch der Rückgabeknopf

Mehr

Unterrichtsvorhaben Q2- I:

Unterrichtsvorhaben Q2- I: Schulinterner Lehrplan Informatik Sekundarstufe II Q2 III. Qualifikationsphase Q2 Unterrichtsvorhaben Q2- I: Im ersten Halbjahr 1 Klausur, im 2. Halbjahr ein Projekt. Die Länge der Klausur beträgt 90 min.

Mehr

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Formale Sprachen: Allgemeines Sprachen werden

Mehr

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc. Pumping-Lemma Beispiel Betrachte die kontextsensitive Grammatik G mit den Produktionen S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc. Sie erzeugt z.b. das Wort aabbcc: S asbc aabcbc aabhbc aabhcc

Mehr