Programmiersprachen und ihre Übersetzer. Syntaxorientierte Übersetzung

Größe: px
Ab Seite anzeigen:

Download "Programmiersprachen und ihre Übersetzer. Syntaxorientierte Übersetzung"

Transkript

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

2 Aufbau von Programmiersprachen Programmiersprachen bestehen aus einer relativ kleinen Anzahl von Konzepten. Solche Konzepte sind etwa Typ- oder Klassendefinitionen, Typdeklarationen, Funktionsdefinitionen (sei es durch Gleichungen oder durch Anweisungen mit Kontrollstruktur), Audrücke, spezielle Notationen für vordefinierte Datentypen, Angaben zur Programmstruktur (Module, Pakete). Jedes dieser Konzepte hat seine Semantik. Eine Sprache ist um so einfacher zu lernen, zu verstehen und zu nutzen, je weniger Konzepte sie braucht, und je freier diese kombiniert werden können (und dabei immer noch verständlich bleiben). Das nennt man auch Orthogonalität.

3 Abstrakte und konkrete Syntax Konkrete Programme entstehen durch Kombination dieser Konzepte, und diese Kombination ist immer rekursiv. Diesen Aufbau nennt man die abstrakte Syntax des Programms. Die lineare Zeichenkette, die wir als Programmtext eingeben, nennt man konkrete Syntax. Sie verschleiert oft diesen rekursiven Aufbau eher als dass sie ihn aufzeigt. Die Aufgabe der Syntaxanalyse ist es, die abstrakte Struktur in der konkreten Syntax zu erkennen.

4 Beschreibung und Vermittlung von Programmiersprachen Die Syntax von Programmiersprachen wird traditionell durch kontextfreie Grammatiken beschrieben. Nicht zu Unrecht sind kontextfreie Grammatiken deswegen eines der meistgenutzten formalen Konzepte der Informatik. Trotzdem ist diese Tradition nicht unproblematisch, und eine kleine Kritik sei erlaubt.

5 Doppelfunktion der CFG Genau betrachtet, löst die kontextfreie Grammatik zwei Aufgaben: Es wird eine konkrete lineare Notation angegeben, in der die rekursiv verschachtelten Sprachkonstrukte aufzuschreiben sind, so dass die abstrakte Syntax aus der linearen Aufschreibung (re-)konstruiert werden kann {, } oder begin, end in Anweisungen, (, ) in Ausdrücken, ; zwischen Anweisungen Zugleich wird implizit die abstrakte Syntax festgelegt: Dürfen Typdeklarationen Ausdrücke enthalten? Können Prozeduren geschachtelt definiert werden? Angaben zur Modulstruktur müssen am Anfang stehen! Einfacher wäre das Lernen von Programmiersprachen, wenn diese beiden Aspekte getrennt beschrieben wären.

6 Regeln der abstrakten Syntax Hinter der abstrakten Synax stehen Design-Entscheidungen, wichtige methodische oder semantische Erwägungen, etwa: Man will verlangen, dass Angaben zur Modulstruktur am Programmanfang auftreten, und nicht versteckt in der Mitte. Man will keine Deklaration neuer Typen innerhalb von Ausdrücken zulassen, weil dies zu unübersichtlichen Programmen führt. Man will in imperativen Sprachen keine Funktionen in Datentypen zulassen, weil man in diesen Sprachen dafür keine vernünftige Semantik angeben kann. Und so weiter.

7 Regeln der konkreten Syntax Ganz anders sind die Regelungen der konkreten Syntax - hier geht es nur um die Aufschreibung.

8 Regeln der konkreten Syntax Ganz anders sind die Regelungen der konkreten Syntax - hier geht es nur um die Aufschreibung. Was heißt da nur die konkrete Syntax ist von erheblicher praktischer und strategischer (!) Bedeutung. Wie will man die abstrakte Syntax zum Ausdruck bringen? Will man wirklich syntaktische Klammern einführen, oder verwendet man dafür das Layout (Abseitsregel)? Dabei kommt es auf Ästhetik an oder Gewohnheit. Java sucht die syntaktische Nähe zu C, auch wenn die beiden Sprachen semantisch viel verschiedener sind als sie syntaktisch aussehen. Haskell weicht aus rechtlichen Gründen von in Miranda bewährten Notationen ab...

9 Getrennte Definition?? Es wäre also generell nicht verkehrt, eine Trennung zwischen abstrakter und konkreter Syntax einer Programmiersprache explizit zu machen. Vom Standpunkt des Übersetzerbaus her braucht man sie ohnehin.

10 Getrennte Definition?? Es wäre also generell nicht verkehrt, eine Trennung zwischen abstrakter und konkreter Syntax einer Programmiersprache explizit zu machen. Vom Standpunkt des Übersetzerbaus her braucht man sie ohnehin. Übung Wie steht s damit bei Bellman s GAP?

11 (Konkreter) Syntaxbaum und (abstrakter) Programmbaum Der Ableitungsbaum der CFG ist der konkrete Syntaxbaum, und ist viel komplizierter als man für die Übersetzung braucht. Für die Übersetzung wird die abstrakt Syntax gebraucht, d.h. der Programmbaum, der eine Abstraktion des konkreten Syntaxbaums ist.

12 Ein Beispiel zur konkreten und abstrakten Syntax Einfache arithmetische Ausdrücke können repräsentiert werden durch den Datentyp Expression: > module Ableitung where > infixr :+: > data Expression = Times Expression Expression > Plus Expression Expression > Minus Expression Expression > AsExp Identifier > type Identifier = String x * (y + z) wird zu Times (AsExp "x") (Plus (AsExp "y")(asexp "z"))

13 Abstrakter Ausdrucksbaum Als Baumstruktur sieht der Ausdruck so aus: times asexp plus x asexp asexp y z Natürlich will man Programme weder in Baumdarstellung, noch in der Präfix-Notation eingeben. Die übliche Schreibweise ist eine Zeichenreihe mit infix-operatoren, und wenn nötig Klammern.

14 CFG für Ausdrücke Kontextfreie, eindeutige Grammatik für arithmetische Ausdrücke in üblicher Notation, E E + T E E T E T T T F T F F (E) F Id Id x y z Als Syntaxbaum für x (y + z) ergibt sich

15 E T T F F ( E ) Id E + T x T F Id F Id z y

16 Zu konkret!! Der Syntaxbaum enthält sehr viel an semantisch irrelevanter Struktur, Kettenregeln E T, T F und F Id. Operatoren wie Nonterminals, wo Operatoren alleine ausreichend sind, semantisch irrelevante Terminalsymbole, wie die Klammern. Diese Details verschwinden in der abstrakten Syntax, werden uns aber in Kap. 4 wieder begegnen.

17 Übersetzungsschemata Da das Programm eine rekursive Datenstruktur ist, folgen alle Übersetzungsphasen im wesentlichen dem Schema der strukturellen Rekursion; allerdings sind, je nach Schwierigkeit des Übersetzungsschritts, ausgefeiltere Formen dieses Schemas notwendig. Drei solche Schemata werden wir kennenlernen: das einfache Ableitungsschema, das erweiterte Ableitungsschema, attributierte Grammatiken.

18 Signaturen, Terme Definition Eine Signatur Σ besteht aus einer Menge von Operationssymbolen und einer Menge von Sorten. Die Sorten sind den Operationen als Argument- und Ergebnistypen zugeordnet. Wohltypisierte Formeln aus diesen Operatoren werden Terme genannt. Mit T Σ bezeichnen wir die Menge aller Terme zur Signatur Σ, und mit T Σ (V ) diejenigen Terme zur Signatur Σ, die auch Variablen aus einer Variablenmenge V enthalten können.

19 Definition Σ-Algebren Ist Σ eine Signatur, so ist eine Σ-Algebra eine Menge von Wertemengen zusammen mit einer Menge von Funktionen, die wir als die Interpretation der Sorten und Operationen der Signatur auffassen. Für die Interpretation eines Terms t in einer Algebra A schreiben wir t A, s A für die Interpretation der Sorte s, und so weiter.

20 Definition Σ-Algebren Ist Σ eine Signatur, so ist eine Σ-Algebra eine Menge von Wertemengen zusammen mit einer Menge von Funktionen, die wir als die Interpretation der Sorten und Operationen der Signatur auffassen. Für die Interpretation eines Terms t in einer Algebra A schreiben wir t A, s A für die Interpretation der Sorte s, und so weiter. Natürlich kann jede Signatur Σ durch viele verschiedene Σ-Algebren interpretiert werden. Die einfachste Interpretation ist stets der algebraische Datentyp, der gerade zu jeder Sorte einen passenden Datentyp und zu jeder Operation der Signatur einen gleichnamigen Konstruktor angibt. Diesen Datentyp bezeichnen wir als die Termalgebra der Signatur; er ist isomorph zu T Σ.

21 Signatur für arithmetische Ausdrücke Sorten Exp 1, Id Operationen x: Id y: Id z: Id asexp: Id Exp plus: Exp Exp Exp times: Exp Exp Exp minus: Exp Exp Exp 1 Unter den Sorten wird die ausgezeichnete Programmsorte in den nachfolgenden Beispielen fettgedruckt.

22 Implementierung der Term-Algebra in Haskell Der Haskell-Datentyp Expression stellt mit der naheliegenden Zuordnung der Sorten und Operationen (Expression für Exp, Plus für plus, etc.) gerade die Termalgebra zu dieser Signatur dar; es fehlen nur die Interpretationen für die Identifier x, y, z. data Expression = Times Expression Expression Plus Expression Expression Minus Expression Expression AsExp Identifier type Identifier = String > x = "x" > y = "y" > z = "z"

23 Interpretation in der Term-Algebra Damit ist die Interpretation des Terms gerade der Haskell-Wert times(asexp(x), plus(asexp(y), asexp(z))) Times (AsExp "x")(plus (AsExp "y") (AsExp "z")). Hier passiert also nicht besonders viel. Hier sind jedoch weitere Interpretationen zur gleichen Signatur:

24 Interpretation in einer Algebra der natürlichen Zahlen Wir interpretieren die arithmetischen Ausdrücke in einer Algebra IN (Nat = Menge der natürlichen Zahlen) wie folgt: Id IN = Exp IN = Menge Nat der natürlichen Zahlen. plus IN : (n 1, n 2 ) Exp IN Exp IN n 1 + n 2 Exp IN times IN : (n 1, n 2 ) Exp IN Exp IN n 1 n 2 Exp IN asexp IN : n Id IN n Exp IN minus IN : (n 1, n 2 ) Exp IN Exp IN n 1 n 2 Exp IN x IN : 3 Id IN y IN : 17 Id IN z IN : 25 Id IN Damit ergibt sich z. B. für t = times(asexp(x), plus(asexp(y), asexp(z))) die Auswertung t IN = x IN (y IN + z IN ) = 3 ( ) = 126. Dies ist aber nicht die einzige Interpretationsmöglichkeit für arithmetische Ausdrücke.

25 Interpretation in einer Boole schen Algebra Genauso erlaubt (und auch praktisch sinnvoll) ist eine Interpretation innerhalb der Booleschen Algebra Bool: Id B = Exp B = Bool = {T, F } plus B : (b 1, b 2 ) b 1 b 2 times B : (b 1, b 2 ) b 1 b 2 minus B : (b 1, b 2 ) b 1 b 2 asexp B : b b x B : = T y B : = F z B : = T Dann ergibt sich für denselben Term t die Auswertung t B = T (F T ) = T.

26 Interpretation in der Notations-Algebra Wir kommen nun auf die Frage zurück, wie Programme als Zeichenreihen darstellbar sind: Wir interpretieren die Signatur in der String-Algebra; jeder Sorte der Signatur wird durch Strings interpretiert, und jeder Term durch seine Darstellung als Zeichenreihe. Id String = Exp String = String > t = times (asexp x) (plus (asexp y) (asexp z)) > plus a b = "(" ++ a ++ " + " ++ b ++ ")" > times a b = a ++ " * " ++ b > minus a b = "(" ++ a ++ " - " ++ b ++ ")" > asexp a = a > x = "x" > y = "y" > z = "z"

27 Notations-Interpretation In der Notations-Algebra ergibt sich für denselben Term t die Auswertung "x * (y + z)" Diese Notation ist aber noch nicht so flexibel wie man sie sich in Programmiersprachen wünscht, da manchmal unnötige Klammern gesetzt werden.

28 Notations-Interpretation In der Notations-Algebra ergibt sich für denselben Term t die Auswertung "x * (y + z)" Diese Notation ist aber noch nicht so flexibel wie man sie sich in Programmiersprachen wünscht, da manchmal unnötige Klammern gesetzt werden. Was ist dann Syntaxanalyse?

29 Interpretation in einer Algebra der Kellermaschinenprogramme Im nächsten Abschnitt werden wir als weiteres Beispiel eine Interpretation in einer Algebra von Programmen für eine einfache Kellermaschine kennenlernen.

30 Zusammenfassung (1) Wir können jetzt zusammenfassend die Begriffe Sprache, Syntax und Semantik aus Kapitel 2 präzisieren. Eine Sprache L : A (A A) wird repräsentiert durch ein Tripel (Σ, S, I), Σ Signatur, S und I Σ-Algebren. Dabei ist S die Notation der Programmiersprache, d.h. eine Interpretation von Σ in einer Algebra der Zeichenreihen. Es ist dann L-Prog = {l S l T Σ }, d.h. die Programme sind genau die Notationen der Σ-Terme der Programmsorte.

31 Zusammenfassung (2) Die Semantik L der Sprache ist gegeben als L(l) = l I, für jedes Programm l T Σ, also als das Ergebnis der Auswertung von l in I. Dabei sind natürlich nur solche I zugelassen, die der Programmsorte P eine Menge von Funktionen des Typs A A zuordnen.

32 Übersetzung durch Ableitung Da wir jetzt Programme einer Sprache L als Terme in T ΣL einer zugeordneten Signatur Σ L sehen, betrachten wir nun Übersetzer c als Abbildungen gemäß c : T ΣQ T ΣZ wenn Σ Q bzw. Σ Z die Signaturen von Quell- bzw. Zielsprache sind. Eine mögliche Form der induktiven Übersetzerdefinition wird als Übersetzung durch Ableitung bezeichnet. Der Übersetzer heißt dann Signaturmorphismus oder auch derivor.

33 Der Ableitungsbegriff Definition Eine Ableitung c : T ΣQ T ΣZ konstruiert eine Σ Q -Algebra über T ΣZ. Jeder Σ Q -Sorte s wird eine Σ Z -Sorte s c zugeordnet, jedem Σ Q -Operationssymbol f eine Funktion f c. Die Funktion f c wird dabei durch einen Term aus T ΣZ (V ) beschrieben. Einfach sind solche Ableitungen, weil sie eine rein syntaktische Transformation sind. Jeder Σ Q -Term wird durch ersetzen seiner Konstruktoren gemä s c durch einen Σ Z -Term ersetzt.

34 Notation als Ableitung Betrachten wir zum Beispiel die Interpretation von Exp in der Notations-Algebra. Die Zielsignatur (hier die Zeichenreihen) enthält unter anderem die Operation ++. Diese Operation ist selbst nicht Interpretation einer Operation aus Σ Q, wird aber benutzt, um die interpretierenden Funktionen zu definieren. Die Interpretation lautet ja gerade times N = f times mit. Also gilt z.b.. f times (a, b) = a b c(times(a, b)) = f times (c(a), c(b))

35 Notation als Ableitung Betrachten wir zum Beispiel die Interpretation von Exp in der Notations-Algebra. Die Zielsignatur (hier die Zeichenreihen) enthält unter anderem die Operation ++. Diese Operation ist selbst nicht Interpretation einer Operation aus Σ Q, wird aber benutzt, um die interpretierenden Funktionen zu definieren. Die Interpretation lautet ja gerade times N = f times mit. Also gilt z.b. f times (a, b) = a b c(times(a, b)) = f times (c(a), c(b)). Natürlich ist der Interpretationsbegriff allgemeiner als der Ableitungsbegriff, da die Funktion f times im allgemeinen auf beliebige Art definiert sein kann.

36 Notationsableitung in Haskell Ableitungen lassen sich besonders einfach funktional implementieren: > c :: Expression -> String > c (Times a b) = c a ++ " * " ++ c b > c (Plus a b) = "(" ++ c a ++ " + " ++ c b ++ ")" > c (Minus a b) = "(" ++ c a ++ " - " ++ c b ++ ")" > c (AsExp i) = c i where > c:: Identifier -> String > c i = i

37 Übersetzung arithmetischer Ausdrücke in Kellermaschinencode Wir betrachten eine einfache Kellermaschine mit drei Registern und 0-Adress-Befehlen als Ziel der Übersetzung. > data Code = ADD NEG MUL > PUSH Reg Code :+: Code deriving Show > data Reg = R1 R2 R3 deriving Show Der Befehl PUSH lädt einen Registerinhalt auf den Keller. Die Befehle ADD und MUL addieren bzw. multiplizieren auf dem Keller, NEG invertiert das Vorzeichen des obersten Kellerelementes. Weitere Instruktionen brauchen wir für unser einfaches Beispiel nicht. Der Konstruktor :+: bildet Befehlssequenzen.

38 Ausdrucks-Übersetzer Hier ist die Übersetzung e2c: > e2c :: Expression -> Code > e2c (Times a b) = e2c a :+: e2c b :+: MUL > e2c (Plus a b) = e2c a :+: e2c b :+: ADD > e2c (Minus a b) = e2c a :+: e2c b :+: NEG :+: ADD > e2c (AsExp a) = PUSH (e2c a) where > e2c:: Identifier -> Reg > e2c "x" = R1 > e2c "y" = R2 > e2c "z" = R3

39 Übersetzungsbeispiel Diese Übersetzerdefinition liefert z. B. für t1 = Times (AsExp "x") (Minus (AsExp "y") (AsExp "z")) ===> e2c(t1) = PUSH R1 :+: (PUSH R2 :+: PUSH R3 :+: NEG :+: ADD ) :+: MUL wobei die runden Klammern in c(t) bedeutungslos sind, aber noch die Struktur des Quellprogramms wiederspiegeln.

40 Die Übersetzergleichung Wir haben nun eine konkrete Repräsentation für Ziel- und Quellprogramme als Terme der jeweiligen Signatur, und eine konkrete Vorstellung von dem Übersetzer, nämlich als Ableitung. Definition Wie bisher seien Σ Q, Σ Z und c gegeben. I Q und I Z seien Σ-Algebren für Σ Q und Σ Z. c ist ein korrekter Übersetzer von der Quellsprache (Σ Q, I Q ) in die Zielsprache (Σ Z, I Z ), falls für alle t T ΣQ von der Programmsorte t IQ (c(t)) IZ gilt, d. h. falls für alle a 1 a n A a = t IQ (a 1,..., a n ) a = (c(t)) IZ (a 1,..., a n ). D.h. für alle Q-Programme ( = Terme t von Q-Programmsorte) ist die Interpretation (c(t)) IZ der Übersetzung c(t) eine E/A-Funktion, die gleich der E/A-Funktion des Quellprogrammes Robert ist Giegerich

41 Übung Man definiere für die Zielsprache (Stackmaschinencode) des Beispiels über arithmetische Ausdrücke eine Semantik, die die Intuition trifft und beweise die Korrektheit des Übersetzers.

42 Komposition von Ableitungen Interessant ist noch die Beobachtung, daß die Übersetzung durch Ableitung unter Komposition abgeschlossen ist: Für Ableitungen c 1 : Σ Q1 Σ Z1 = Σ Q2 und c 2 : Σ Q2 Σ Z2 ist c 3 = c 2 c 1 eine Ableitung von Σ Q1 nach Σ Z2. Beweis: Man wende einfach die Regeln von c 2 auf die Definition von c 1 an). Damit kann man Übersetzungen modular (eventuell über mehrere Zwischensprachen) spezifizieren.

43 Schranken des einfachen Ableitungsschemas Ableitungen sind Übersetzungsschemata, die völlig kontextunabhängig arbeiten. Probleme: 1 Viele Konstrukte in Programmiersprachen erfordern ein kontextabhängiges Übersetzen. Ein Übersetzer c, der den Kontext berücksichtigt, ist vom Typ c : Quellprogramm Symboltabelle Zielprogramm. Ableitungen c sind dagegen immer vom Typ c : Quellprogramm Zielprogramm. 2 Ableitungen können nur in einfacher Weise Operatoren der Quellsprache durch Terme in der Zielsprache ersetzen. Ein Übersetzer muss oft auch semantische Werte wirklich ausrechnen.

44 Erweiterung In realistischen Beispielen sind die durch Ableitung erzeugten Zielterme nicht die endgültigen Zielprogramme. Erst durch eine nachfolgende Auswertung (auf der leeren Eingabe) gehen sie in die tatsächlichen Zielprogramme über. Mit anderen Worten, die Terme c(t) sind zu interpretieren als Programme in einer Sprache C von Übersetzungszeitaktionen. Die Ausführung von c(t) gemäß C (zur Übersetzungszeit; auf der leeren Eingabe) liefert erst das eigentliche Zielprogramm. Solche Zweistufigkeit erhöht Modularität: Die Sprache Σ C der Compilezeitaktionen kann man für eine ganze Sprachfamilie entwerfen!

45 Ein Beispielübersetzer nach dem Ableitungsschema in Haskell Erweitertes Ableitungsschema:

46 Quell- und Zielsprache Als Quellsprache nehmen wir eine Sprache von while-programmen mit Variablendeklarationen. Als Zielsprache nehmen wir eine idealisierte Kellermaschine. Dieses umfangreiche Beispiel wurde nicht in Folien zerlegt. Siehe Skript Seite 44 51

47 Aufbau des Beispiels Abstrakte Syntax Datentypen Compiler Quellsprache Σ Q int, bool Ableitung Zielsprache Σ Z Adressen, Werte Σ Q Σ C Compileraktionen Σ C Zustand Interpretation Typprüfung Symboltabelle Zustand Σ C Σ Z Markenverwaltung 2 Zähler Dekl.Info 2 Stacks Codeausgabe Zielcode

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

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 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

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

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

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

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

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

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

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Lineare Differentialgleichungen erster Ordnung erkennen

Lineare Differentialgleichungen erster Ordnung erkennen Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

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

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

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN Wir wollen nun die Rechengesetze der natürlichen Zahlen auf die Zahlenmenge der ganzen Zahlen erweitern und zwar so, dass sie zu keinem Widerspruch mit bisher geltenden

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

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

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

Approximation durch Taylorpolynome

Approximation durch Taylorpolynome TU Berlin Fakultät II - Mathematik und Naturwissenschaften Sekretariat MA 4-1 Straße des 17. Juni 10623 Berlin Hochschultag Approximation durch Taylorpolynome Im Rahmen der Schülerinnen- und Schüler-Uni

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

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

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

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

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

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

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

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen? BITte ein BIT Vom Bit zum Binärsystem A Bit Of Magic 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen? 3. Gegeben ist der Bitstrom: 10010110 Was repräsentiert

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

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

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Frau Dr. Eva Douma ist Organisations-Beraterin in Frankfurt am Main Das ist eine Zusammen-Fassung des Vortrages: Busines

Mehr

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf Nachdem die Projekt-Vision und die Stakeholder bekannt sind,

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Geld Verdienen im Internet leicht gemacht

Geld Verdienen im Internet leicht gemacht Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das

Mehr

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

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

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

1. Weniger Steuern zahlen

1. Weniger Steuern zahlen 1. Weniger Steuern zahlen Wenn man arbeitet, zahlt man Geld an den Staat. Dieses Geld heißt Steuern. Viele Menschen zahlen zu viel Steuern. Sie haben daher wenig Geld für Wohnung, Gewand oder Essen. Wenn

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

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

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f.

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f. Themen neu 3 Was lernen Sie hier? Sie formulieren Ihre Vermutungen und Meinungen. Was machen Sie? Sie erklären Wörter und Ausdrücke und beurteilen Aussagen. Einkaufen im Internet Lektion 5 in Themen neu

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

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

Musterlösungen zur Linearen Algebra II Blatt 5

Musterlösungen zur Linearen Algebra II Blatt 5 Musterlösungen zur Linearen Algebra II Blatt 5 Aufgabe. Man betrachte die Matrix A := über dem Körper R und über dem Körper F und bestimme jeweils die Jordan- Normalform. Beweis. Das charakteristische

Mehr

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort: Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung

Mehr

Umgekehrte Kurvendiskussion

Umgekehrte Kurvendiskussion Umgekehrte Kurvendiskussion Bei einer Kurvendiskussion haben wir eine Funktionsgleichung vorgegeben und versuchen ihre 'Besonderheiten' herauszufinden: Nullstellen, Extremwerte, Wendepunkte, Polstellen

Mehr

Wir machen neue Politik für Baden-Württemberg

Wir machen neue Politik für Baden-Württemberg Wir machen neue Politik für Baden-Württemberg Am 27. März 2011 haben die Menschen in Baden-Württemberg gewählt. Sie wollten eine andere Politik als vorher. Die Menschen haben die GRÜNEN und die SPD in

Mehr

Die Post hat eine Umfrage gemacht

Die Post hat eine Umfrage gemacht Die Post hat eine Umfrage gemacht Bei der Umfrage ging es um das Thema: Inklusion Die Post hat Menschen mit Behinderung und Menschen ohne Behinderung gefragt: Wie zufrieden sie in dieser Gesellschaft sind.

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Version 2.0 1 Original-Application Note ads-tec GmbH IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Stand: 27.10.2014 ads-tec GmbH 2014 IRF2000 2 Inhaltsverzeichnis

Mehr

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die

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

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

Die Invaliden-Versicherung ändert sich

Die Invaliden-Versicherung ändert sich Die Invaliden-Versicherung ändert sich 1 Erklärung Die Invaliden-Versicherung ist für invalide Personen. Invalid bedeutet: Eine Person kann einige Sachen nicht machen. Wegen einer Krankheit. Wegen einem

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

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

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Second Steps in eport 2.0 So ordern Sie Credits und Berichte Second Steps in eport 2.0 So ordern Sie Credits und Berichte Schritt 1: Credits kaufen, um Zugangscodes generieren zu können Wählen Sie Credits verwalten und klicken Sie auf Credits kaufen. Geben Sie nun

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

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

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Zimmertypen. Zimmertypen anlegen

Zimmertypen. Zimmertypen anlegen Zimmertypen anlegen Hier legen Sie Ihre Zimmer an, damit sie auf der Homepage dargestellt werden und online buchbar gemacht werden können. Wobei wir ausdrücklich darauf hinweisen möchten, dass es ganz

Mehr

Rhetorik und Argumentationstheorie. [frederik.gierlinger@univie.ac.at]

Rhetorik und Argumentationstheorie. [frederik.gierlinger@univie.ac.at] Rhetorik und Argumentationstheorie 1 [frederik.gierlinger@univie.ac.at] Ablauf der Veranstaltung Termine 1-6 Erarbeitung diverser Grundbegriffe Termine 7-12 Besprechung von philosophischen Aufsätzen Termin

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

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

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen .3 Komplexe Potenzreihen und weitere komplexe Funktionen Definition.) komplexe Folgen: z n = x n + j. y n mit zwei reellen Folgen x n und y n.) Konvergenz: Eine komplexe Folge z n = x n + j. y n heißt

Mehr