8590 Romanshorn Maturaarbeit Tel Automatische Übersetzung formaler Sprachen

Größe: px
Ab Seite anzeigen:

Download "8590 Romanshorn Maturaarbeit Tel. 071 463 60 75 email michele.itten@gmx.ch. Automatische Übersetzung formaler Sprachen"

Transkript

1 Michèle Itten Kantonsschule Romanshorn Steinhaldenweg 28 Klasse 4Mb 8590 Romanshorn Maturaarbeit Tel Automatische Übersetzung formaler Sprachen Fach: Mathematik Betreuer: Dr. math. A. Brunnschweiler Abgabetermin: 11. August 2003

2 Inhaltsverzeichnis 1 Einleitung 3 2 Sprachtypen Natürliche Sprachen Formale Sprachen 5 3 Syntax Syntaxdiagramme BNF (Backus Naur Form) EBNF (Extended Backus Naur Form) 10 4 Anwendungsbereiche Übersetzung natürlicher Sprachen Computerinterne Übersetzung 13 5 Übersetzungsvorgang Analyse Synthese Anforderungen an die Grammatik Regel Regel Hinweis: Syntax dient der Semantik 17 6 UPN-Compiler Anforderungen Konzept Benutzte Sprachen Mikroalgebra Infix Mikroalgebra UPN (Postfix) Umsetzung mit Borland Delphi 21 7 Automatische_Ableitung Anforderungen Konzept Benutzte Sprachen 25 1

3 7.4 Umsetzung mit Borland Delphi Erstellung des Syntaxbaumes Vereinfachung des Syntaxbaumes mit Simplify SimplifySubTree SimplifyBin SimplifySingle SimplifyBrothers Darstellen des Syntaxbaumes mit TreeView Ableiten Gewinnen eines Strings aus dem Syntaxbaum Synthesize Parentheses-Funktionen Evaluate Darstellung im zweidimensionalen Koordinatensystem weitere Funktionen und Prozeduren 51 8 Schlusswort 51 Literaturverzeichnis 53 Glossar 54 Anhang A: UPN-Compiler 55 Anhang B: Automatische_Ableitung 62 PAutomatische_Ableitung 62 UAutomatische_Ableitung 62 UDiagramm 98 UAbout 102 Formulare 104 FAutomatische_Ableitung 104 FDiagramm 104 FAbout 105 FInfixEBNF 105 FPostfixEBNF 105 2

4 1 Einleitung Übersetzung ist ein viel wesentlicherer Bestandteil unseres täglichen Lebens als meist angenommen. Sie spielt nicht nur in der menschlichen Kommunikation eine wichtige Rolle, sondern findet überall statt, wo Information in eine andere Codierung umgewandelt wird. Auch in der Informatik ist sie fest verwurzelt: Der Umgang mit Computern, wie wir ihn heute kennen, wäre ohne automatische Übersetzung undenkbar. Aus diesem Grund ist es besonders reizvoll, einen Blick hinter die Kulissen eines automatischen Übersetzungsprogramms zu werfen und folgenden Fragen auf den Grund zu gehen: - Wie kann man sich die vielen Fehler erklären, die sich bei der automatischen Übersetzungen natürlicher Sprachen einschleichen? - Sind überhaupt zuverlässige Übersetzungen möglich? Falls ja, unter welchen Umständen? Diese Frage führte mich zur Übersetzung formaler Sprachen, welche präzise und korrekt durchführbar ist. Ausserdem funktioniert sie auch mit geringerer Komplexität und erlaubt deshalb die Entwicklung eines eigenen Programms. So bilden denn auch zwei solche das Kernstück der vorliegenden Arbeit: Das erste ist eine Konsolenanwendung zur Übersetzung eines algebraischen Ausdrucks aus der Infix- in die Postfix-Notation. Das zweite, graphische Programm dient zur Ableitung einer Funktion. An diesen beiden praktischen Beispielen werden Vorgehen und dabei auftauchende Probleme erläutert. Es gilt, folgende Leitfragen zu untersuchen: - Wie kann man eine Sprache in kurzer Form definieren, auch wenn sie unendlich viele Kombinationsmöglichkeiten besitzen soll? - Wie funktioniert die Erkennung der Sprachstruktur? - Auf welche Weise wird die Information in eine andere Struktur umgeformt? - Was muss man tun, um die Qualität der Ausgabe zu verbessern? Zusätzlich zu diesen Fragen sollen die wichtigsten Begriffe erklärt und die Anwendungsbereiche der automatischen Übersetzung formaler und natürlicher Sprachen beschrieben werden. 3

5 2 Sprachtypen Gemäss dem Brockhaus Lexikon ist eine Sprache ein "Vorrat von sinnlich wahrnehmbaren Zeichen, die allein oder nach bestimmten [...] Kombinationsregeln untereinander verbunden der Kommunikation dienen." 1 Dabei wird primär zwischen natürlichen und künstlichen Sprachen unterschieden; die künstlichen Sprachen wiederum unterteilt man in Welthilfssprachen, synthetische Sprachen (Nachbildung natürlicher Sprachen durch mechanische Schwingungen) und formale Sprachen, welche im Abschnitt 2.2 genauer behandelt werden. 2.1 Natürliche Sprachen Deutsch, Französisch, Englisch, Italienisch, Chinesisch, etc.: Alle diese Sprachen gehören zu den natürlichen Sprachen. Jahrhundertelang wurden sie sich durch den ständigen Gebrauch verändert, angepasst und erweitert. Auf diese Weise entwickelten sie sich zu sehr komplexen Gebilden, welche schwer zu durchschauen sind. Dies wird einem besonders dann bewusst, wenn man eine Fremdsprache erlernen will. "Die Ausnahme bestätigt die Regel", wie man es treffend ausdrückt. Ohne so genanntes 'Sprachgefühl' hat man keine Chance, sich in einer fremden Sprache korrekt zu verständigen. Auf die gleiche Art und Weise erweitert sich auch das Vokabular ständig und es ist längst unmöglich, jedem Wort eine einzige Bedeutung zuzuordnen. Ein Beispiel dafür ist das Wort "Bank", welches zwei völlig unterschiedliche Dinge bezeichnen kann. Zum Einen beschreibt es ein Geldinstitut, zum Andern eine bestimmte Sitzgelegenheit. Erst aus dem Zusammenhang wird klar, um welche Art von "Bank" es sich handelt, mit anderen Worten: Das Wort ist "kontextabhängig". 2 Nur wenn in einer Sprache keine kontextabhängigen Ausdrücke existieren, ist die Sprache kontextfrei. Auch Metaphern sind eine typische Eigenheit von natürlichen Sprachen und können meistens nicht wortgetreu übersetzt werden. Weitere Probleme ergeben sich mit Kompositabildungen (zusammengesetzten Wörtern), die besonders in der deutschen Sprache häufig anzutreffen sind. Sie können "unmöglich alle in einem Wörterbuch 1 [2] Brockhaus, Bd.17, S [11] Lang, Kapitel 5 4

6 enthalten sein, also wird eine morphologische Analyse [...] notwendig." 3 Doch wie trennt man das zusammengesetzte Wort Beinhaltung richtig? Be-inhaltung oder Bein-haltung? Auch hier ergibt sich ein Problem, das nur unter Berücksichtigung des umgebenden Textes gelöst werden kann. Weitere Beispiele können auf dem Internet gefunden werden Formale Sprachen Die oben genannten Eigenschaften natürlicher Sprachen machen es für einen Computer beinahe unmöglich, diese zu verstehen. Aus diesem Grund wurden weitere Sprachen erfunden, so genannte 'formale Sprachen'. Hierbei sind Eindeutigkeit und logischer Aufbau das A und O; ausserdem zeichnen sie sich durch ein sehr begrenztes Vokabular aus, welches je nach Gebrauch ausgebaut werden kann. Zu den formalen Sprachen gehören Programmiersprachen, Maschinensprachen und algebraische Ausdrücke. Der entscheidende Unterschied zu natürlichen Sprachen liegt "in ihrer Entstehung. Während natürliche Sprachen historisch gewachsen sind, verdanken künstliche Sprachen ihre Existenz einer willkürlichen, durch bestimmte Interessen motivierten Setzung. [...] Formale Sprachen ermöglichen durch ihre spezifischen Eigenschaften (Eindeutigkeit, Explizitheit und leichte Überprüfbarkeit) die bessere Behandlung von Problemen in vielen Wissenschaften." 5 Im Folgenden werden nur kontextfreie, formale Sprachen betrachtet und zur Veranschaulichung mit Vergleichen zu natürlichen Sprachen ergänzt. 3 Syntax In den Sommer warme scheinen die Sonne obwohl jedes dieser Worte zum Vokabular der deutschen Sprache gehört, können sie zusammen unmöglich als korrekter deutscher Satz gelten, da die Syntaxregeln nicht beachtet wurden. "Die Regeln der Syntax beziehen sich darauf, welche Wörter auf welche Weise mit anderen Wörtern 3 [11] Lang, Kapitel 4 4 [11] Lang, Kapitel 4 5 [1] Brockhaus, Band 20, Seite 628 5

7 oder Wortgruppen zu grösseren Einheiten [...] kombiniert werden können" 6 bezeichnen somit ein Teilgebiet der Grammatik. und Um eine Sprache zu definieren, bedarf man also zweierlei: Erstens muss der Wortschatz festgelegt werden, was man einfach durch Bestimmung aller erlaubten Wörter erreichen kann. Zweitens benötigt man ein System, das jeden zulässigen Satzbau definiert. Zu diesem Zweck stehen u.a. Syntaxdiagramme, BNF- oder EBNF-Notation zur Verfügung, welche nachfolgend erläutert werden. Diese Syntaxnotationen basieren alle auf dem gleichen Grundprinzip: Sie gehen von einem Startsymbol aus und definieren Regeln, auf welche Weise dieses ersetzt werden kann. Zur Erklärung soll ein Beispiel eines einfachen deutschen Satzes dienen: SATZ SUBJEKT PRÄDIKAT. ARTIKEL NOMEN VERB. Der Hund bellt. Abbildung 1: Aufbau des Satzes "Der Hund bellt.". In diesem Fall wird das Startsymbol 'Satz' genannt und besteht lediglich aus einem Subjekt, gefolgt von einem Prädikat und einem Punkt. Das Subjekt wiederum ist aus Artikel und Nomen zusammengesetzt; das Prädikat steht für die Personalform eines beliebigen Verbs. Ein Satz entspricht also der Folge 'Artikel Nomen Verb.'. Natürlich ist dies noch nicht die definitive Form des Satzes, da alle drei Wortarten noch durch einen Vertreter derselben ersetzt werden müssen. "Der Hund bellt." wäre eine mögliche Lösung, "Anna isst." gehört hingegen nicht zu der definierten Sprache (der Artikel fehlt). 6 [1] Brockhaus, Band 20, Seite 628 6

8 Es sind mehr Wörter zur Beschreibung einer Sprache notwendig, als die Sprache selbst enthält. Diese Metasymbole (im Beispiel Satz, Artikel, Nomen, Verb) werden in der Literatur Nonterminals oder nicht-terminale Symbole genannt. Sie dienen als Überbegriffe der Gruppierung anderer Wörter. Die tatsächlich in der Sprache enthaltenen Wörter nennt man Terminals oder terminale Symbole. Sie entsprechen dem Vokabular der Sprache und sind wörtlich zu nehmen. 3.1 Syntaxdiagramme Eine sehr anschauliche Art der Syntaxnotation sind die so genannten Syntaxdiagramme. Hierbei werden die Syntaxregeln durch mehrere verknüpfte Einzeldiagramme dargestellt. Jedes Einzeldiagramm besteht aus Knoten und Pfeilen: Die Pfeile deuten in die Richtung, in der das Diagramm durchlaufen werden darf, die Knoten teilen sich in terminale und nicht-terminale Knoten. Terminale Knoten werden als Kreise oder Ovale dargestellt; alle terminalen Knoten zusammen definieren also den gesamten Wortschatz. Nicht-terminale Knoten (mit einem rechteckigen Rahmen versehen) verweisen auf ein weiteres Einzeldiagramm, das an dieser Stelle durchlaufen werden soll, analog zum Beispiel der vorigen Seite. 7 Ein Beispiel soll dies verdeutlichen: Startdiagramm: Dezimalzahl Dezimalzahl Natürliche Zahl. Natürliche Zahl Natürliche Zahl Ziffer 7 [12] Schiedermeier 7

9 Ziffer Syntaxdefinition 1: Dezimalzahlen in Syntaxdiagrammen Bei der Anwendung der Syntaxdiagramme geht man nach folgender Regel vor: "Ein Text ist [...] korrekt, wenn er mit einem kompletten Durchlauf des Syntaxdiagrammes vollständig nachvollzogen werden kann. Dabei darf am Ende weder ein Rest des Textes noch ein Rest des Syntaxdiagrammes unverarbeitet übrigbleiben. Es kommt nur darauf an, dass es irgendeinen Weg durch das Syntaxdiagramm gibt, der zum Text passt. Es spielt keine Rolle, welche Abzweigungen dabei genommen werden." BNF (Backus Naur Form) Eine zweite Methode zur Definition der Syntax bildet die nach ihren Erfindern John Backus und Peter Naur benannte BNF. 9 Ihr Hauptvorteil liegt darin, dass sie "gegenüber Syntaxdiagrammen kompakter und als reine Textdarstellung leichter maschinell zu verarbeiten" 10 ist. Aus diesem Grund hat sie sich auch bis heute als Syntaxnotation durchgesetzt, wenn auch in leicht abgewandelter Form (siehe Kap. 3.3 EBNF) [12] Schiedermeier 9 [10] Estier 10 [12] Schiedermeier 11 [6] Schnorf, Seite 13 8

10 In BNF sieht die Definition der Dezimalzahlen folgendermassen aus: Startsymbol: Dezimalzahl Dezimalzahl = NatürlicheZahl NatürlicheZahl '.' NatürlicheZahl NatürlicheZahl = Ziffer Ziffer NatürlicheZahl Ziffer Syntaxdefinition 2: Dezimalzahlen in BNF = '1' '2' '3' '4' '5' '6' '7' '8' '9' '0' Bei dieser Notation unterteilt man die Syntax in einzelne Produktionen (analog zu den Einzeldiagrammen in Kapitel 3.1). Jede Produktion entspricht einer Art Gleichung: Auf der linken Seite befindet sich ein nicht-terminales Symbol, das durch den Ausdruck auf der rechten Seite des Gleichheitszeichens ersetzt werden kann. Auc h hier verweisen nicht-terminale Symbole auf eine weitere Produktion, während Terminale einem Symbol der definierten Sprache entsprechen und nicht weiter ersetzt werden. Zur Kennzeichnung werden Terminalsymbole oft mit Apostrophen oder Anführungszeichen markiert. 12 Für die rechte Seite der Produktionen stehen zusätzlich zwei verschiedene Meta-Symbole zur Verfügung: das griechische? für die leere Sequenz ("nichts") sowie der vertikale Strich als "oder"-symbol. 13 Bei der Anwendung nt man mit dem nicht-terminalen Startsymbol, welches man gemäss den Regeln der zugehörigen Produktion ersetzt. Solange in der Symbolfolge nicht-terminale Symbole vorkommen, werden diese nach der entsprechenden Produktion ersetzt. Auf diese Weise kann man jeden korrekten Satz konstruieren. Zwei Beispiele sollen dies verdeutlichen: Ist eine Dezimalzahl? Dezimalzahl => NatürlicheZahl '.' NatürlicheZahl => Ziffer NatürlicheZahl '.' Ziffer => Ziffer Ziffer NatürlicheZahl '.' Ziffer => Ziffer Ziffer Ziffer '.' Ziffer => '3' '5' '6' '.' '9' Beispiel 1: Herleitung nach BNF "Dezimalzahl" 12 [8] Wirth, Seite [6] Schnorf, Seite 10 9

11 Ist.91 eine Dezimalzahl? Dezimalzahl => NatürlicheZahl '.' NatürlicheZahl => ZIFFER '.' Ziffer Natürliche Zahl VOR DEM PUNKT MUSS MINDESTENS EINE ZIFFER STEHEN! Beispiel 2: Herleitung.91 nach BNF "Dezimalzahl" Dieses zweite Beispiel ist nicht herleitbar, da das Startsymbol Dezimalzahl durch NatürlicheZahl '.' NatürlicheZahl ersetzt werden muss, damit der Punkt zustande kommt. Doch NatürlicheZahl muss durch mindestens eine Ziffer ersetzt werden. Damit wird es unmöglich, den Satz.91 herzuleiten. Zusammenfassend kann festgehalten werden, dass eine Sprache durch vier Elemente charakterisiert wird: Ihr Vokabular, das durch Terminalsymbole ausgedrückt wird, die Menge aller nicht-terminalen Symbole, sämtliche Produktionen und das Startsymbol, welches zu den nicht-terminalen Symbolen gehört EBNF (Extended Backus Naur Form) 15 EBNF stellt wie der Name sagt eine Weiterentwicklung der Backus Naur Form dar. Diese Erweiterung, welche auf Niklaus Wirth zurückgeht, lässt neue Metasymbole zu, welche die Notation dem menschlichen Denken anpassen. Die Produktion NatürlicheZahl beispielsweise bezeichnet nichts Anderes als eine Folge von einer oder mehreren aufeinanderfolgenden Ziffern. In den Syntaxdiagrammen wird dies durch eine beliebig wiederholbare Schlaufe verdeutlicht. In BNF muss auf Rekursivität zurückgegriffen werden: NatürlicheZahl = Ziffer Ziffer NatürlicheZahl. Durch wiederholtes Durchlaufen dieser Produktion kann jede beliebige Anzahl von Ziffern hintereinander erreicht werden, solange sie nicht kleiner als eins ist. Die Produktion ist korrekt, jedoch nicht sehr benutzerfreundlich, da die rekursive Denkweise gewöhnungsbedürftig ist. 14 [8] Wirth, Seite 7 15 [6] Schnorf, Seite 11 10

12 Ein ähnliches Problem ergibt sich, wenn man eine Option definieren will, wie beispielsweise der zweite Teil des Diagramms Dezimalzahl: In BNF wird dies durch? '.' NatürlicheZahl ausgedrückt. In Worte gefasst meint man, dass entweder nichts oder '.' Natürliche Zahl geschrieben werden kann. Es ist ungewohnt, ein Zeichen zu setzen, um auszusagen, dass nichts notiert werden soll. EBNF ist aus diesem Grund um einige Metasymbole reicher und drückt diese beiden Situationen durch bestimmte Klammer aus: {a} bedeutet Repetition und entspricht? a aa aaa aaaa aaaaa... [a] bedeutet Option und entspricht? a (a) Runde Klammern dienen der Zusammenfassung einzelner Teile der Definition. Durch diese Erweiterungen ist das Spezialsymbol? für die leere Sequenz nicht mehr nötig. Ebenso wurde zur einfacheren maschinellen Verarbeitung ein Punkt als Trennzeichen am Ende jeder Produktion eingeführt (ein Zeilenwechsel allein ist kein sichtbares Symbol). Die Definition der Dezimalzahlen lautet also in EBNF folgendermassen: Dezimalzahl = NatürlicheZahl ['.' Natürliche Zahl]. NatürlicheZahl = Ziffer {Ziffer}. Ziffer Syntaxdefinition 3: Dezimalzahlen in EBNF Ein Beispiel zur Herleitung aus EBNF: = '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'. Ist eine Dezimalzahl? Dezimalzahl => NatürlicheZahl '.' NatürlicheZahl => Ziffer Ziffer Ziffer '.' Ziffer => '3' '5' '6' '.' '9' Beispiel 3: Herleitung nach EBNF "Dezimalzahl" EBNF ermöglicht eine kurze, jedoch einleuchtende Definition einer Sprache und kann deshalb nach Tremblay und Sorenson praktisch für jede formale Sprache verwendet werden: "BNF has been around for quite a while, and with all its simplicity, it is almost adequate. With the additions to BNF [...] it will serve well enough for just about any design process. [...] There is no evidence that more complex methods than these are either necessary or desirable for describing reasonable languages." in: [6] Schnorf, Seite 13 11

13 Zum Schluss sei aber darauf hingewiesen, dass Syntax nicht mit Semantik gleichzusetzen ist: Die Syntax analysiert lediglich die Form eines Textes, während sich die Semantik mit seiner Bedeutung auseinandersetzt. Es gibt Sätze, die zwar syntaktisch völlig korrekt, aber dennoch sinnlos sind (z.b. "der blaue Stein ist rot" oder "Fritz ist älter als seine Mutter"). Man bezeichnet deshalb die Syntax auch als "Aspekt einer Sprache [...], bei dem nur die formalen Gesetzmässigkeiten verwendet werden und keine Interpretationen oder Deutungen [gemacht werden]." 17 4 Anwendungsbereiche 4.1 Übersetzung natürlicher Sprachen Die Erkenntnisse aus der Anwendung mit formalen Sprachen lassen sich auch für die Übersetzung natürlicher Sprachen nutzen, allerdings mit zusätzlichen Problemen wie Kontextabhängigkeit, laufende Entwicklung, Doppeldeutigkeiten, unzähligen Ausnahmen, zusammengesetzten Wörtern, etc. 18 Auf dem Internet finden sich zahlreiche kostenlose automatische Übersetzungsdienste 19, mit denen man relativ einfach einen Einblick in den momentanen Stand der Technik gewinnen kann. Amy Lang fasst ihn in einem Internetbericht folgendermassen zusammen: "Eine vollautomatische Übersetzung ist aus heutiger Sicht nicht realistisch, menschliche Eingriffe bleiben erforderlich." 20 Zur besseren Bewältigung dieser Probleme ist man u.a. auf der Suche nach "einer generellen Zwischensprache, der Interlingua, um nicht für jedes Sprachpaar neue Systeme bauen zu müssen - allerdings bislang erfolglos. Bisher konnte weder eine umfangreiche Interlingua erstellt noch ein Verfahren zu ihrer Konzeption entwickelt werden." 21 Ein anderes Forschungsgebiet innerhalb der automatischen Übersetzung natürlicher 17 [2] Brockhaus, Band 18, S [11] Lang, Kapitel 4 19 wie z.b. [13] 20 [11] Lang, Kapitel 6 21 [11] Lang, Kapitel 6 12

14 Sprachen ist die Anwendung für gesprochenen Text, 22 was aber an dieser Stelle nicht näher behandelt wird. 4.2 Computerinterne Übersetzung Würde der Computer keine internen Übersetzungsprogramme besitzen, welche in der Lage wären, die Eingaben des Anwenders (solange sie sich innerhalb eines genau vordefinierten Bereichs bewegen) in den Maschinencode zu übersetzen, dann wären selbst die einfachsten Programmieraufgaben nur eine Angelegenheit von Experten. Man wäre gezwungen, sämtliche Eingaben im Maschinencode (eine Folge von hexadezimalen Zahlen) einzugeben, der nicht nur für die meisten Leute unverständlich, sondern zusätzlich auch bei jedem Prozessortyp unterschiedlich ist. 23 Man erstellt deshalb zuerst einen Compiler, der aus einer höheren Programmiersprache wie Pascal in die Maschinensprache übersetzen kann. Dank diesem können Programme in einer verständlicheren und kürzeren Form entwickelt werden. Der Bau solcher Compiler ist jedoch sehr anspruchsvoll und somit "eines der best fundierten [Gebiete] in der Informatik" 24. Dadurch wurden Compiler zu verlässlichen, wesentlichen und dennoch oft unbemerkten Bestandteilen der Computerwissenschaft. 5 Übersetzungsvorgang Der gesamte Ablauf des Übersetzungsprogramms besteht aus unterschiedlichen Teilschritten, die hier der Reihe nach erläutert werden sollen: 5.1 Analyse 25 In diesem ersten Schritt geht es darum, die Eingabe in ihre Bestandteile zu zerlegen und diese so umzuwandeln, dass die Maschine 'versteht', worum es sich handelt (z.b. die Umwandlung von Zahlzeichen in Informationen, die der Computer als 'Zahlen' wahrnimmt). Um die syntaktische Richtigkeit zu überprüfen sucht ein so ge- 22 [5] Kurematsu und Morimoto [9] Brunnschweiler, Seite 2f [6] Schnorf, Seite 1 25 [8] Wirth, Seite 11 13

15 nannter Parser die Struktur, mit welcher die einzelnen Teile zusammenhängen. 26 Dies geschieht durch die Bildung eines so genannten 'Syntaxbaums' (Parsetree): Hierbei wird der eingegebene Satz gemäss den Regeln der EBNF-Sprachdefinition in eine Form gebracht, die an einen umgekehrten Baum erinnert. Für diese Umwandlung stehen zwei unterschiedliche Verfahren zur Verfügung, genannt Top-Down und Bottom-Up. Dieses beiden Varianten erstellen den Baum in genau umgekehrter Reihenfolge: Bottom-Up nt mit den einzelnen Symbolen des eingelesenen Textes und fasst diese immer wieder zu grösseren Gruppen zusammen, bis am Ende alles auf einen einzigen Baum reduziert wurde. Man ersetzt also immer wieder Gruppen von Symbolen, die der rechten Seite einer Produktion entsprechen, durch das zugehörige linke Nonterminal. In der graphischen Darstellung wächst so der Baum von unten nach oben, woher auch die Bezeichnung 'bottom-up' herrührt. Der Nachteil ist, dass sich solche Parser "kaum mehr von Hand erstellen [lassen]" 27 Das hier verwendete 'Top-Down'-Verfahren geht vom Startsymbol aus und nt gemäss den EBNF-Produktionen, Nonterminals der linken Seite durch den passenden Ausdruck der rechten Regelseite zu ersetzen. Betrachtet man den graphischen Aufbau, wird auch hier die Namengebung offensichtlich: Abbildung 2: Verfahren zur Erstellung des Syntaxbaums [6] Schnorf, Seite 2 27 [6] Schnorf, Seite [8] Wirth, Seite 10f 14

16 Die Eigenschaft des top-down Parsers, ausgehend von nichtterminalen Symbolen zu den terminalen zu gelangen, stellt einige Anforderungen an die Grammatik der verwendeten Sprache, welche in Kapitel 5.3 genauer erläutert werden. Sofern ein solcher Syntaxbaum erstellt werden kann (die Vorgehensweise spielt dabei keine Rolle), ist gleichzeitig auch gewährleistet, dass die Regeln der Syntax beachtet wurden. Je nach Übersetzungssituation schliesst an diesem Punkt noch eine semantische Analyse an, welche jene Spracheinschränkungen überprüft, die "nicht in die Syntaxdefinition fallen, aber dennoch zur Übersetzungszeit festzulegen sind " Synthese 30 Im zweiten Teil des Übersetzungsvorgangs geht es darum, aus dem Baum den Satz in der Zielsprache zu generieren. Das kann unter Umständen bedeuten, dass man zuerst den Baum umformen oder ihn zuerst in einen Zwischencode verwandeln muss, weil sich die Strukturen der beiden Sprache unterscheiden. Dies ist sowohl bei formalen, als auch bei natürlichen Sprachen der Fall, man denke nur einmal an die unterschiedliche Platzierung von Subjekt und konjugiertem Verb im deutschen, französischen oder englischen Nebensatz. Zuletzt wird aus dem Zwischencode der Satz in der Zielsprache hergeleitet und als Endresultat ausgegeben. Je nach Notwendigkeit können dazwischen zusätzliche Optimierungsphasen eingebaut werden (Siehe Kapitel und 7.4.5). 5.3 Anforderungen an die Grammatik 31 "Anstatt einen möglichst allgemeinen Erkennungs-Algorithmus, genannt Parser, zu finden, gehen wir in umgekehrter Richtung vor: Wir postulieren einen einfachen Algorithmus und bestimmen danach die Klasse der Sprachen, die er verarbeiten kann. Eine erste Folge dieser grundlegenden Forderung ist, dass jeder Schritt in der Zerlegung eines Satzes lediglich durch den gegenwärtigen Zustand der Analyse und ein 29 [6] Schnorf, Seite 2 30 [6] Schnorf, Seite 2 31 [8] Wirth, Seite 10ff 15

17 einziges, nächstes zu lesendes Symbol bestimmt werden darf [One symbol lookahead]. Ferner wird gefordert, dass kein Schritt später rückgängig gemacht werden darf [no backtracking]." 32 Diese Arbeit baut auf dem von Wirth vorgeschlagenen Algorithmus auf und deshalb gelten für sie die gleichen Einschränkungen, was die Auswahl der möglichen Sprach- Grammatiken betrifft. In den folgenden Unterkapiteln werden die daraus folgenden Regeln genauer betrachtet Regel 1 Die erste Folgerung bedeutet konkret, dass es keine Alternativen a ß geben darf, die beide mit dem selben Symbol nen können, weil sonst erst beim zweiten Symbol über die Wahl der Produktion entschieden werden kann. Dies zeigt das folgende Beispiel: S = A B. A = 'x' 'y'. B = {'x'} 'z'. Beispiel 4: Missachtung von Regel 1 Das erste Symbol von A heisst in jedem Fall x, dasjenige von B x oder z. Beginnt nun der Satz mit x, so kann nicht entschieden werden, ob S durch A oder B ersetzt werden soll. Die Entscheidung für die Wahl von A oder B kann nur mit Blick auf das übernächste Symbol getroffen werden. Um der Forderung 'One symbol lookahead' nachzukommen, müssen sich die Anfangssymbole von Alternativen auf jeden Fall voneinander unterscheiden Regel 2 Die zweite Regel, die diesen Forderungen entspringt, lautet wie folgt: "Für jedes nicht-terminale Symbol A, aus welchem die leere Folge hergeleitet werden kann, muss die Menge seiner Initialsymbole disjunkt von der Menge seiner Folgesymbole sein." 33 Dies bedeutet, dass ein Nonterminal, das durch? ('nichts') ersetzt werden kann (was bei [n] oder {n} der Fall ist), nie von einem seiner möglichen 32 [8] Wirth, Seite [8] Wirth, Seite 13 16

18 Anfangssymbole gefolgt sein darf. Etwas weniger abstrakt wird diese Regel mit einem Beispiel: S = A 'x'. A = ['x']. Beispiel 5: Missachtung von Regel 2 34 Hier sind Anfangssymbol und Folgesymbol beide x und aus A kann die leere Folge hergeleitet werden. Der Satz 'x' würde gemäss Produktion zur Ersetzung von S durch Ax führen. Bei der Substitution von A würde das nächste Symbol betrachtet, x, und dementsprechend für die Option gestimmt. Allerdings folgt ja nach A noch einmal ein x und der Satz kann nicht mehr hergeleitet werden. Dies wird zu einer unberechtigten Fehlermeldung führen. Eine Verletzung von Regel 2 kann also zu falschen Entscheidungen bei Option und Repetition führen Hinweis: Syntax dient der Semantik Es ist wichtig, an dieser Stelle zu erwähnen, dass die Syntax die Bedeutung des Satzes stets unterstützen soll. Viele Schwierigkeiten mit den beiden vorangehenden Regeln können durch eine Umformulierung der Syntax beseitigt werden. Allerdings kann sich dadurch die Bedeutung des Satzes ändern, wie im folgenden Beispiel: S = A ( S '-' A ). A = 'a' 'b' 'c'. Beispiel 6: Verletzung von Regel 1 35 In der Produktion S wird Regel 1 verletzt, da die möglichen ersten Symbole von A gleich sind wie jene von S A (nämlich 'a', 'b' oder 'c'). Dieses Problem kann durch Umformung umgangen werden: S = AB. B = ['-'S]. A = 'a' 'b' 'c'. Beispiel 7: Umformulierte Syntax aus Beispiel 6, die keine Regeln mehr verletzt 36 Bezüglich ihrer Syntax sind die beiden Notationen völlig identisch, jedoch ergeben 34 [8] Wirth, Seite [8] Wirth, Seite 13f 36 [8] Wirth, Seite 14 17

19 sich Unterschiede, wenn man die Semantik betrachtet. Bei der Herleitung von 'a - b - c' ergeben sich folgende Strukturen (durch Klammerung hervorgehoben): aus Beispiel 6: S => (S-A) => ((S-A)-A) => ((S-A)-A) => ((A-A)-A) => ((a-b)-c) aus Beispiel 7: S => (A B) => (A -S) => (A -(A B)) => (A -(A -S)) => (A -(A AB)) =>(A -(A A )) => (a-(b-c)) Beispiel 8: Herleitung des Satzes a-b-c Diese Strukturen sind im Syntaxbaum durch die verschiedenen Ebenen gespeichert. Durch das Top-Down-Verfahren ist der zuerst erstellte auch gleichzeitig der Hauptknoten. Dies ist in der ersten Herleitung das zweite Minuszeichen und subtrahiert deshalb vom nachher erstellte Teilbaum a-b den Minuenden c. In der anderen Herleitung ist es genau umgekehrt, da das erste Minuszeichen vor dem zweiten erstellt wird. Gemäss den üblichen Regeln der Subtraktion sind diese beiden Resultate aber nicht identisch. Deshalb muss bei der Umformung einer Syntax "stets beachtet werden, dass damit die Bedeutungsstruktur der Sprache nicht in Mitleidenschaft gezogen wird." 37 6 UPN-Compiler 6.1 Anforderungen Das Ziel dieser einfachen Konsolenanwendung war die Entwicklung eines Compilers, der in der Lage ist, algebraische Ausdrücke aus der Infix- in die Postfix-Notation zu übersetzen. Die benötigten Methoden sollten so einfach und kurz sein wie möglich, damit sie die technische Umsetzung der vorher erarbeiteten Theorie möglichst einleuchtend erklären. 6.2 Konzept Bei einer einfachen Struktur wie der hier verwendeten ist es nicht nötig, die Eingabe zuerst in einen Baum umzuwandeln. Es genügt, sie bereits bei der Erkennung in die richtige Reihenfolge zu bringen und gleich wieder auszugeben. Auch Optimierungsphasen sind keine nötig. Der Computer wird also alle aufgenommenen Daten im 37 [8] Wirth, Seite 13 18

20 gleichen Durchlauf wieder aufschreiben und aus dem Speicher löschen. 6.3 Benutzte Sprachen Im folgenden Abschnitt sollen die beiden verwendeten Sprachen erklärt und mit Hilfe der EBNF-Notation definiert werden. Sie sind beide auf die vier Grundoperationen Addition, Subtraktion, Multiplikation und Division beschränkt, bieten allerdings bei der Eingabe der Zahlen einige Freiheiten (wie Fliesspunktzahlen oder negative Werte) Mikroalgebra Infix Diese Sprache umfasst einen Teil der heute üblichen Mathematiksprache, wie sie in der Schule gelehrt wird. Der Beiname Infix weist darauf hin, dass die Operationszeichen jeweils zwischen den Operanden stehen. Die EBNF dieser Sprache lautet: (1)Terminalsymbole: 0,1,2,3,4,5,6,7,8,9,+,-,*,/,(,),.,E (2) (3)Nicht-terminale Symbole:Expression, Term, Factor, Number, Digit (4) (5)Produktionen: Expression = ['-'] Term {('+' '-') Term}. (6) Term = Factor {('*' '/') Factor}. (7) Factor = Number '(' Expression ')'. (8) Number = PosDecNumber ['E'['-']NatNumber]. (9) PosDecNumber = NatNumber ['.' NatNumber]. (10) NatNumber = {Digit}Digit. (11) Digit = '0' '1' '2' '3' '4' '5' '6' '7' '8' '9'. (12) (13)Startsymbol Expression (14) (15)Die Semantik ist die übliche Semantik der Algebra. Listing 1: EBNF der Sprache Mikroalgebra Infix 38 Aus der EBNF ist auch ersichtlich, dass negative Zahlen mit unärem Minus immer eingeklammert werden müssen Mikroalgebra UPN (Postfix) Die Postfix-Notation ist eine andere Schreibweise für die gleichen Informationen. Der Unterschied besteht darin, dass hier die Zahlen in einen so genannten Stack ge- 38 Anhang A 19

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

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

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

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

ax 2 + bx + c = 0, (4.1)

ax 2 + bx + c = 0, (4.1) Kapitel 4 Komplexe Zahlen Wenn wir uns auf die reellen Zahlen beschränken, ist die Operation des Wurzelziehens (also die Umkehrung der Potenzierung) nicht immer möglich. Zum Beispiel können wir nicht die

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Information in einem Computer ist ein

Information in einem Computer ist ein 4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.

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 15.11.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Review / Organisatorisches o Probleme bei Foliendownload?

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Äquivalente Grammatiken / attributierte Grammatik

Äquivalente Grammatiken / attributierte Grammatik Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,

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

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Druckanpassung von Mahnungen

Druckanpassung von Mahnungen Druckanpassung von Mahnungen Nur wenn Sie die faktura in der Einzelversion nutzen, steht Ihnen für die Druckanpassung der Mahnungen auch der Formularassistent zur Verfügung. Dort können Sie die gewünschten

Mehr

Vom Taschengeld zum Haushaltsbudget

Vom Taschengeld zum Haushaltsbudget Mithilfe eines Tabellenkalkulationsprogramms kannst du Tabellen erstellen, Daten erfassen und auswerten, Kosten ermitteln, Diagramme erstellen, Notendurchschnitte errechnen usw. Die Dateien können als

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren:

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren: Daten und ihre Codierung Seite: 1 Zur Universalität der Informatik Gott ist ein Informatiker Die Grundordnung der Welt läßt sich mathematisch formulieren: Naturgesetze, wie wir sie in der Physik, Chemie

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Zum Einsatz von Operatoren im Informatikunterricht

Zum Einsatz von Operatoren im Informatikunterricht Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Professur für Didaktik der Informatik/Mathematik Claudia Strödter E-Mail: claudia.stroedter@uni-jena.de Zum Einsatz von Operatoren

Mehr

Erzeugung von Übersetzern formaler Sprachen anhand der Grammatik. Jede Grammatik hat zwei Typen von Zeichen

Erzeugung von Übersetzern formaler Sprachen anhand der Grammatik. Jede Grammatik hat zwei Typen von Zeichen Grammatiken Erzeugung von Übersetzern formaler Sprachen anhand der Grammatik Terminals / Nonterminals Jede Grammatik hat zwei Typen von Zeichen Terminals (Symbole, Token) die Grundsymbole der Sprache z.b.

Mehr

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler Formale Sprachen Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen Rudolf Freund, Marian Kogler (http://xkcd.com/208) Gültige Adressen: Favoritenstraße 9, 1040 Wien Reumannplatz

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Mathematik-Dossier. Die lineare Funktion

Mathematik-Dossier. Die lineare Funktion Name: Mathematik-Dossier Die lineare Funktion Inhalt: Lineare Funktion Lösen von Gleichungssystemen und schneiden von Geraden Verwendung: Dieses Dossier dient der Repetition und Festigung innerhalb der

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5 Personal Computer in Betrieb nehmen 1/6 Weltweit setzen die Menschen alltäglich das Zehnersystem für Zählen und Rechnen ein. Die ursprüngliche Orientierung stammt vom Zählen mit unseren 10 Fingern. Für

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Makros erstellen und aufrufen Dr. V.Thormählen

Makros erstellen und aufrufen Dr. V.Thormählen Inhalt Mit Makros arbeiten... 2 Makro erstellen... 3 Makro aufrufen... 4 1. Tastenkürzel zuordnen... 4 2. Schnellzugriffsleiste anpassen... 6 3. Menüband anpassen... 8 Fazit... 11 Listings Listing 1: Codezeilen

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

A.1 Schaltfunktionen und Schaltnetze

A.1 Schaltfunktionen und Schaltnetze Schaltfunktionen und Schaltnetze A. Schaltfunktionen und Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Bedeutung des Binärsystems für den Rechneraufbau Seit Beginn der Entwicklung von Computerhardware

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

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

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

2. Syntax. Themen dieses Kapitels:

2. Syntax. Themen dieses Kapitels: 2. Syntax GPS-2-1 Themen dieses Kapitels: 2.1 Grundsymbole 2.2 Kontext-freie Grammatiken Schema für Ausdrucksgrammatiken Erweiterte Notationen für kontext-freie Grammatiken Entwurf einfacher Grammatiken

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

3 Berechnungen und Variablen

3 Berechnungen und Variablen 3 Berechnungen und Variablen Du hast Python installiert und weißt, wie man die Python-Shell startet. Jetzt kannst Du etwas damit machen. Wir fangen mit ein paar einfachen Berechnungen an und wenden uns

Mehr

Zahlenbereiche. Jörn Loviscach. Versionsstand: 20. Oktober 2009, 17:43

Zahlenbereiche. Jörn Loviscach. Versionsstand: 20. Oktober 2009, 17:43 Zahlenbereiche Jörn Loviscach Versionsstand: 20. Oktober 2009, 17:43 1 Natürliche, ganze und rationale Zahlen Zum Zählen benötigt man die positiven natürlichen Zahlen 1, 2, 3,... In der Informatik zählt

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

CAS-Ansicht Computer Algebra System & Cas spezifische Befehle

CAS-Ansicht Computer Algebra System & Cas spezifische Befehle CAS-Ansicht Computer Algebra System & Cas spezifische Befehle GeoGebra Workshop Handout 10 1 1. Einführung in die GeoGebra CAS-Ansicht Die CAS-Ansicht ermöglicht die Verwendung eines CAS (Computer Algebra

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

inviu NFC-tracker für Android Funktionsweise und Bedienung

inviu NFC-tracker für Android Funktionsweise und Bedienung inviu NFC-tracker für Android Funktionsweise und Bedienung 1 Inhaltsverzeichnis inviu NFC-tracker...1 1 Inhaltsverzeichnis...1 2 Installation...2 3 Einrichtung im Webportal inviu pro...2 3.1 Benannte Positionen

Mehr

Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen

Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Überblick Teil 1: Lexen und Parsen Die Sprache LFP +C Professur

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

Mehr

Die arithmetischen Operatoren sind +, -, *, /, ^ für die Addition, Subtraktion, Multiplikation, Division und Potenzierung

Die arithmetischen Operatoren sind +, -, *, /, ^ für die Addition, Subtraktion, Multiplikation, Division und Potenzierung 4 FORMELN Formeln sind die Grundlagen einer Tabellenkalkulation. Dabei ist der Begriff Formel in unterschiedlicher Weise zu verstehen. So kann eine Formel eine rein rechnerische Auswertung sein, es kann

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Dirk Reinhardt Excel für Einsteiger Teil 1. Einleitung

Dirk Reinhardt Excel für Einsteiger Teil 1. Einleitung Einleitung Excel ist ein sogenanntes Tabellenkalkulationsprogramm. Eine Aufgabe eines Tabellenkalkulationsprogramms ist es, häufig wiederkehrende Rechenoperationen, die in einer Tabelle durchgeführt werden,

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser Programmierung, Algorithmen und Techniken von Thomas Ohlhauser 1. Begriff Programmierung Entwicklung von Programmen inklusive der dabei verwendeten Methoden und Denkweisen. Ein Programm ist eine eine Zusammensetzung

Mehr

Aufgabe 6. Gedichtinterpretation worte sind schatten

Aufgabe 6. Gedichtinterpretation worte sind schatten Aufgabe 6 Dennis Blöte, 08.12.2006 Gedichtinterpretation worte sind schatten Das Gedicht worte sind schatten wurde 1969 von Eugen Gomringer geschrieben und befasst sich auf spielerische Art und Weise mit

Mehr

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer? Vorlesung Programmieren Zahlendarstellung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Agenda Zahlendarstellung Oder: wie rechnen

Mehr

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n Über die Komposition der quadratischen Formen von beliebig vielen Variablen 1. (Nachrichten von der k. Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-physikalische Klasse, 1898, S. 309 316.)

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Übungen zu Modellierung verteilter Systeme

Übungen zu Modellierung verteilter Systeme Technische Universität München SoSe 2014 Institut für Informatik Lösungsblatt 1 PD Dr.habil. B. Schätz Ausgabe: 17. April 2014 M. Gleirscher, D. Marmsoler Besprechung: 24. April 2014 Übungen zu Modellierung

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

12. ArcView-Anwendertreffen 2010. Workshop Programmierung in ArcGIS. Daniel Fuchs. Wo kann eigene Programmierung in ArcGIS verwendet werden?

12. ArcView-Anwendertreffen 2010. Workshop Programmierung in ArcGIS. Daniel Fuchs. Wo kann eigene Programmierung in ArcGIS verwendet werden? Wo kann eigene Programmierung in ArcGIS verwendet werden? 12. ArcView-Anwendertreffen 2010 Workshop Programmierung in ArcGIS Daniel Fuchs 1) Makros für die Automatisierung einzelner Arbeitsschritte im

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Präsentation zum Thema XML Datenaustausch und Integration

Präsentation zum Thema XML Datenaustausch und Integration Sebastian Land Präsentation zum Thema XML Datenaustausch und Integration oder Warum eigentlich XML? Gliederung der Präsentation 1. Erläuterung des Themas 2. Anwendungsbeispiel 3. Situation 1: Homogene

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise A-Plan 12.0 Zeiterfassung 2.0 Ausgabe 1.1 Copyright Copyright 1996-2014 braintool software gmbh Kein Teil dieses Handbuches darf ohne ausdrückliche Genehmigung von braintool software gmbh auf mechanischem

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Sortieren. Eine Testmenge erstellen

Sortieren. Eine Testmenge erstellen Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten

Mehr

4 Binäres Zahlensystem

4 Binäres Zahlensystem Netzwerktechnik achen, den 08.05.03 Stephan Zielinski Dipl.Ing Elektrotechnik Horbacher Str. 116c 52072 achen Tel.: 0241 / 174173 zielinski@fh-aachen.de zielinski.isdrin.de 4 inäres Zahlensystem 4.1 Codieren

Mehr

Der Editor und seine Funktionen

Der Editor und seine Funktionen Der Editor und seine Funktionen Für die Eingabe und Änderung von Texten steht Ihnen im Pflegemodus ein kleiner WYSIWYG-Editor zur Verfügung. Tinymce 1 ist ein Open Source Javascript-Editor, der mittlerweile

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen 3 Variablen 3.1 Allgemeines Variablen werden in Prozeduren, Mustern und Parameter-Dokumenten definiert und verwendet und bei der Jobgenerierung durch die Werte, die ihnen zugewiesen werden, ersetzt. Variablen

Mehr

Eine Abfrage (Query) ist in Begriffe und Operatoren unterteilt. Es gibt zwei verschiedene Arten von Begriffen: einzelne Begriffe und Phrasen.

Eine Abfrage (Query) ist in Begriffe und Operatoren unterteilt. Es gibt zwei verschiedene Arten von Begriffen: einzelne Begriffe und Phrasen. Lucene Hilfe Begriffe Eine Abfrage (Query) ist in Begriffe und Operatoren unterteilt. Es gibt zwei verschiedene Arten von Begriffen: einzelne Begriffe und Phrasen. Ein einzelner Begriff ist ein einzelnes

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Programmiersprachen und ihre Übersetzer. Syntaxorientierte Übersetzung

Programmiersprachen und ihre Übersetzer. Syntaxorientierte Übersetzung Folien zur Vorlesung Programmiersprachen und ihre Übersetzer Kapitel 3 Syntaxorientierte Übersetzung Faculty of Technology robert@techfak.uni-bielefeld.de May 27, 2013 Aufbau von Programmiersprachen Programmiersprachen

Mehr