Teil IX. Eine kleine Programmiersprache

Größe: px
Ab Seite anzeigen:

Download "Teil IX. Eine kleine Programmiersprache"

Transkript

1 Teil IX Eine kleine Programmiersprache 1

2 Teil IX.1 Syntaktische Beschreibungsmittel 2

3 Chomsky Grammatik Eine Chomsky Grammatik wird beschrieben mit einem Quadrupel G = (N, T, P, S). Dabei ist: N die Menge der Nichtterminalsymbole T die Menge der Terminalsymbole P die Menge der Produktionen mit P {ϕ ψ ϕ (N T ) +, ψ (N T ) } S das Startsymbol (N T ) + ist die Menge der nichtleeren endlichen Wörter mit Zeichen aus N T (N T ) enthält zusätzlich das leere Wort λ. 3

4 Weitere Begriffe Sprache: Menge der von einer Grammatik erzeugten Zeichenketten. Parsen: Ist eine gegebene Zeichenkette in der Sprache einer Grammatik enthalten? Ableitungsbaum: Beschreibt, wie die Grammatik eine gegebene Zeichenkette erzeugt. Subsumption, Äquivalenz: Ist die Sprache von Grammatik 1 eine Teilmenge der Sprache von Grammatik 2? 4

5 Typen von Grammatiken Typ 3 regulär: Alle Produktionen haben eine der Formen A λ, A a, A ab (a T, A, B N) Typ 2 kontextfrei: Alle Produktionen sind von der Form: ( A ψ, A N, ψ (N T ) ) Typ 1 kontextsensitiv: Alle Produktionen sind von der Form: ( ϕ 1 Aϕ 2 ϕ 1 ψϕ 2, A N, ϕ1, ϕ 2, ψ (N T ) ), ψ λ Typ 0: Es gibt keine Einschränkung auf die Produktionen 5

6 Beispiel Typ 3: Beliebige Folgen von a, b, c Grammatik: (1) X ax (2) X bx (3) X cx (4) X λ Erzeuge aabac: X ax (1) aax (1) aabx (2) aabax (1) aabacx (3) aabac (4) 6

7 Beispiel Typ 2: Gleich viele a wie c Grammatik: (1) X axc (2) X cxa (3) X bx (4) X Xb (5) X λ Erzeuge acabc: X axc (1) axbc (4) acxabc (2) acabc (5) 7

8 Beispiel Typ 1: a n b n c n Grammatik: (1) X axbc (2) X abc (3) CB BC (4) ab ab (5) bb bb (6) bc bc (7) cc cc Erzeuge aabbcc: X axbc (1) aabcbc (2) aabbcc (3) aabbcc (4) aabbcc (5) aabbcc (6) aabbcc (7) 8

9 Erweiterte Backus Naur Form Erweiterte Notationsform für kontextfreie Grammatiken: Metazeichen das Definitionszeichen =, das Alternativzeichen, die Anführungszeichen, die Wiederholungsklammern {}, mehrfache (auch nullfache) Wiederholung, die Optionsklammern [], null oder einfaches Auftreten, die Gruppenklammern (), der Punkt zur Beendigung einer Regel. Terme: Nichtterminalsymbol: Buchstabe gefolgt von Folge von Buchstaben oder Ziffern Terminalsymbol: w, mit w eine beliebige Folge von Symbolen Wenn α ein Term ist, dann sind auch (α), [α], {α} Terme Wenn α 1,..., α n Terme sind, dann auch α 1... α n (Alternative) und α 1... α n (Sequenz) Regeln: haben die Form V = α, mit V ein Nichtterminalsymbol, α ein Term 9

10 Beispiele Ziffer = "0" "1" "2"... "9". Buchstabe = "A"... "Z" "a"... "z". Name = Buchstabe {Buchstabe Ziffer}. VorzeichenloseZahl = Ziffer {Ziffer}. Vorzeichen = "+" "-". Zahl = [Vorzeichen] VorzeichenloseZahl. Unterstrich = "_". Bezeichner = (Buchstabe Unterstrich) {Buchstabe Ziffer Unterstrich}. 10

11 Syntaxdiagramme Graphische Notation für EBNF aus folgenden Bestandteilen und mit folgenden Regeln: Runde Kästchen für die Terminalsymbole, eckige Kästchen für die Nonterminalsymbole, Verbindungen aus Linien und Pfeilen. An jedem Kästchen endet und beginnt genau ein Pfeil, in der Regel gegenüberliegend. Es gibt genau eine Linie, die oben links am Eingang in das Diagramm hineinführt. Es gibt genau eine Linie, die unten rechts am Ausgang aus dem Diagramm herausführt. Linien dürfen nur verzweigen und sich wieder treffen, aber sich nicht kreuzen. 11

12 Von EBNF zu Syntaxdiagramm 1. Jeder Regel in EBNF entspricht ein Syntaxdiagramm mit dem Namen der linken Seite der Regel. 2. Die Übersetzung der rechten Regelseiten geschieht durch Rekursion über die Struktur der EBNF Terme wie folgt: a) Nichtterminalsymbole V: eckiges Kästchen. V b) w Terminalsymbole: rundes Kästchen. c) (α) wie α. d) [α] wird zu α w e) {α} wird zu α f) α 1... α n : Verkettung der Teildiagramme für einzelne α i. g) α 1... α n Verzweigung der Teildiagramme für einzelne α i. α α n 12

13 Teil IX.2 Syntax von Mini Pascal 13

14 Programm Deklaration EBNF: program = "program" ident ";" block".". ident = letter {letter number}. Syntaxdiagramm: Beispiel: program faktor;... 14

15 Variablen, Konstanten, Prozeduren EBNF: block = [constdecl] [vardecl] {procdecl} "begin" statement {";" statement} "end". constdecl = "const" constident "=" number {";" constident "=" number} ";". vardecl = "var" varident {"," varident} ":" "integer" ";". procdecl = "procedure" procident ";" block ";". constident = ident. procident = ident. varident = ident. Syntaxdiagramm: Beispiel: var IN, AUX, OUT: Integer; begin... end 15

16 Statements (Anweisungen) EBNF: statement = [varident ":=" expression procident "begin" statement {";" statement} "end" "ReadLn(" varident {"," varident}")" "WriteLn(" varident {"," varident}")"...] Beispiel: OUT := 1; AUX := 1; ReadLn(IN); 16

17 Expressions (Ausdrücke) EBNF: expression = ["+" "-"] term {("+" "-") term}. term = factor {("*" "div") factor}. factor = constident varident number "(" expression ")". Beispiel: AUX + 1 OUT * AUX (A + B) * C 17

18 Verzweigung und Schleife EBNF: statement = [... "if" condition "then" statement "while" condition "do" statement]. condition = expression ("=" "<>" "<" "<=" ">" ">=") expression. Beispiel: while AUX <= IN do begin OUT := OUT * AUX; AUX := AUX+1 end; 18

19 Das gesamte Programm program faktor; var IN, AUX, OUT: Integer; begin OUT := 1; AUX := 1; ReadLn(IN); while AUX <= IN do begin OUT := OUT * AUX; AUX := AUX+1 end; WriteLn(OUT) end. 19

20 Die gesamte Syntax program = "program" ident ";" block".". block = [constdecl] [vardecl] {procdecl} "begin" statement {";" statement} "end". constdecl = "const" constident "=" number {";" constident "=" number} ";". vardecl = "var" varident {"," varident} ":" "integer" ";". procdecl = "procedure" procident ";" block ";". statement = [varident ":=" expression procident "begin" statement {";" statement} "end" "if" condition "then" statement "while" condition "do" statement "ReadLn(" varident {"," varident}")" "WriteLn(" varident {"," varident}")"]. condition = expression ("=" "<>" "<" "<=" ">" ">=") expression. expression = ["+" "-"] term {("+" "-") term}. term = factor {("*" "div") factor}. factor = constident varident number "(" expression ")". constident = ident. procident = ident. varident = ident. ident = letter {number letter}. 20

21 Kontextsensitive Bedingungen Die für constdecl, vardecl und procdecl verwendeten Bezeichner ident müssen verschieden sein. Jeder in einem block vorkommende Bezeichner muss vorher deklariert sein. Blockschachtelung: Eine Prozedur procedure kann bereits deklarierte Bezeichner nochmals deklarieren und damit überlagern. 21

22 Blockschachtelung Beispiel program Beispiel; var A, B, C: integer; (* A, B, C sind globale Variablen *) procedure p; var A, B, D : integer; (* Globalen Variablen A, B sind unsichtbar und werden durch die lokalen Variablen der Prozedur p ersetzt. C bleibt sichtbar, D kommt hinzu. *) procedure q; var C: integer; (* Ab hier ist die globale Variable C unsichtbar *) begin... (* Es sind die Variablen A_p, B_p, C_q, D_p zugaenglich *) end; (* Ende der Prozedur q *) begin... (* Es sind die Variablen A_p, B_p, C, D_p zugaenglich *) end; (* Ende der Prozedur p *) (* Von jetzt sind nur noch die globalen Variablen A, B, C sichtbar *) begin... (* Hier steht nun das Hauptprogramm, in dem die Variablen A, B, C neue Werte per Zuweisung auch innerhalb von Kontrollstrukturen erhalten und die Prozeduren p und q ueber ihre Namen aufgerufen werden koennen. *) end. 22

23 Teil IX.3 Mini Assembler 23

24 Instruktionen Konstante: CONST xx Ausdrücke: ADD; SUB; MUL; DIV; Sprungbefehle: JMP x; JE x; JL x; JNE x; JLE x; JG x; JGE x Speicherbefehle: LOAD x,y; STORE x,y 24

25 Mini Stapelmaschine Datenstapel D := ZZ Aktivierungsblock A := ZZ Instruktionszähler Z := IN Programmspeicher S := I IN I die Menge der Instruktionen 25

26 Semantik von Konstanten und Ausdrücken Zustandsänderung auf Datenstapel δ und Erhöhung des Instruktionszählers z [ ] [ ] δ = d1...d CONSTc : n δ = d1...d n.c z = i z = i + 1 [ δ = d1...d n.x.y ] [ δ = d1...d n.x + y ] ADD : z = i z = i + 1 [ δ = d1...d n.x.y ] [ δ = d1...d n.x y ] SUB : z = i z = i + 1 [ δ = d1...d n.x.y ] [ δ = d1...d n.x y ] MUL : z = i z = i + 1 [ δ = d1...d n.x.y ] [ δ = d1...d n. x/y, y 0 ] DIV : z = i z = i

27 Semantik von Sprungbefehlen (Bedingte) Änderung des Instruktionszählers JMPm : [z = i] [z = m] JEm : [ δ = d1...d n.x z = i ] δ = d 1...d n z = m, falls x = 0 z = i + 1, sonst JNEm : [ δ = d1...d n.x z = i ] δ = d 1...d n z = m, falls x 0 z = i + 1, sonst JLm : [ δ = d1...d n.x z = i ] δ = d 1...d n z = m, falls x < 0 z = i + 1, sonst JGm : [ δ = d1...d n.x z = i ] δ = d 1...d n z = m, falls x > 0 z = i + 1, sonst 27

28 Semantik von Speicherbefehlen Indizierter Zugriff auf Aktivierungsbock LOAD 1, o : δ = d 1...d n α = a 1...a m z = i δ = d 1...d n.a o α = a 1...a m z = i + 1 STORE 1, o : δ = d 1...d n.x α = a 1...a m z = i δ = d 1...d n α = a 1...a o /x...a m z = i

29 Teil IX.4 Semantik von Mini Pascal 29

30 Übersetzung von Ausdrücken EComp(ident) := EComp(number) := CONST number EComp (f 1 ) EComp(f 1 f 2 ) := EComp (f 2 ) MUL EComp(f 1 div f 2 ) := EComp(f 1 + f 2 ) := EComp(f 1 f 2 ) := { CONST value(ident),falls constident=ident LOAD lv level(ident), offset(ident), sonst EComp (f 1 ) EComp (f 2 ) DIV EComp (f 1 ) EComp (f 2 ) ADD EComp (f 1 ) EComp (f 2 ) SUB 30

31 Übersetzung von Anweisungen SComp (i := e) := EComp (begin α 1 ;...; α n end) := { EComp(e) STORE lv level(i), offset(i) EComp (α 1 )... EComp (α n ) 31

32 Übersetzung von if und while if (e 1 <=e 2 ) then α := while (e 1 <=e 2 ) do α := EComp (e 1 ) EComp (e 2 ) SUB JGx EComp (α) EComp (e 1 ) EComp (e 2 ) SUB JGx EComp (α) JMPy x ist die Adresse des ersten Befehls nach EComp(α) y ist die Adresse des ersten Befehls von EComp(e 1 ) 32

33 Beispielübersetzung z Befehl PASCAL 01 CONST 1 OUT:=1; 02 STORE 1,3 03 CONST 1 AUX := 1; 04 STORE 1,2 05 CONST 1 IN := 5; 06 STORE 1,1 07 LOAD 1,2 while AUX <= IN do 08 LOAD 1,1 09 SUB 10 JG 20 (* jump if AUX - IN > 0 *) begin 11 LOAD 1,3 OUT := OUT * AUX; 12 LOAD 1,2 13 MUL 14 STORE 1,3 15 LOAD 1,2 AUX := AUX CONST 1 17 ADD 18 STORE 1,2 19 JMP 07 end; 20 LOAD 1,3 WriteLn(OUT); 21 RET 33

34 Adressierung von Variablen 14. LOAD l, o : 15. STORE l, o : δ = d 1...d n π = π 1.π 2...π k z = i δ = d 1...d n.x π = π 1.π 2...π k z = i δ = d 1...d n.π (base (l, k)) LV (o) π = π 1.π 2...π k z = i + 1 δ = d 1...d n π = π z = i

35 Unterprogrammaufrufe CALL l, n, v : RET : [ π = π1.π 2...π k z = i π = π 1.π 2...π k. ] i + 1, base (l, k), z = n [ π =... r, s, (...). r, s, (...)... z = i ] v {}}{ 0, 0,..., 0 [ π =... r, s, (...). z = r ] 35

36 Beispiel-Programm program Beispiel; var A, B, C : Integer; procedure p; var A, B, D: Integer; procedure q; var C: Integer; begin... p; (* CALL 1, adr(p), 3 *)... end; begin C:=0; (* CONST 0; STORE 1,3 *)... q; (* CALL 0,adr(q),1 *)... end ; begin (* Hauptprogramm *)... p; (* CALL 0, adr(p),3 *)... end. 36

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Sprachen sind durch folgenden Aufbau gekennzeichnet: BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE3-Syntaxdiagramme (Stand 05.11.2010) Aufgabe 1: Entwickeln Sie Regeln zur Übersetzung von EBNF in Syntaxdiagramme. Aufgabe 2: Eine Zahl ist entweder

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Begriffe (Wiederholung)

Begriffe (Wiederholung) Begriffe (Wiederholung) Sprache Menge aller Sätze Alphabet terminales / nicht terminales terminales A. Zeichen aus denen die Sätze der Sprache bestehen nicht terminales A. Hilfszeichen zum Bilden von Regeln

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß aus Molière, Les Femmes Savantes (1672), 2. kt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing Ziele Zwei Standards zur Definition der Syntax

Mehr

Ein Fragment von Pascal

Ein Fragment von Pascal Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und

Mehr

3.1 Reservierte Wörter

3.1 Reservierte Wörter 3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

3 Syntax von Programmiersprachen

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

Mehr

Alphabet, formale Sprache

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

Mehr

Kapitel 2: Methoden zur Beschreibung von Syntax

Kapitel 2: Methoden zur Beschreibung von Syntax Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 2: Methoden zur Beschreibung von Syntax Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

Mehr

3 Syntax von Programmiersprachen

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

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher

Mehr

Algorithmen und Datenstrukturen II. Algorithmen und Datenstrukturen II 1

Algorithmen und Datenstrukturen II. Algorithmen und Datenstrukturen II 1 Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II 1 Juniorprofessor Dr.-Ing. Tim W. Nattkemper Raum: M7-130 Sprechstunde: Di 13:00 ct - 14:00 Tel.: 0521/106-6059 Email: tnattkem@techfak.uni-bielefeld.de

Mehr

7. Syntax: Grammatiken, EBNF

7. Syntax: Grammatiken, EBNF 7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens

Mehr

Übersicht: Inhalt und Ziele. Kapitel 2: Methoden zur Beschreibung von Syntax. Aufbau von Programmen. Syntax von Programmiersprachen

Übersicht: Inhalt und Ziele. Kapitel 2: Methoden zur Beschreibung von Syntax. Aufbau von Programmen. Syntax von Programmiersprachen Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Übersicht: Inhalt und Ziele Zwei Methoden zur Beschreibung (Definition) der Syntax von Programmiersprachen Backus-Naur-Form

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

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

Mehr

Syntax der Sprache PASCAL

Syntax der Sprache PASCAL Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 03 06.11.2013 Inhalt Methoden in Java Gültigkeitsbereiche EBNF Einführung in die Programmierung für NF Übung 03 2 Methoden in Java In Methoden werden Ausdrücke

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.5 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibung des Aufbaus von Sprachen Mathematische Mengennotation Beschreibung durch Eigenschaften

Mehr

Kapitel IV Formale Sprachen und Grammatiken

Kapitel IV Formale Sprachen und Grammatiken Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist

Mehr

3.4 Struktur von Programmen

3.4 Struktur von Programmen 3.4 Struktur von Programmen Programme sind hierarchisch aus Komponenten aufgebaut. Für jede Komponente geben wir Regeln an, wie sie aus anderen Komponenten zusammengesetzt sein können. program ::= decl*

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen

Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen 1. Was ist eine formale Sprache? Menge von Zeichenketten, die aus den Symbolen eines beliebigen Alphabets aufgebaut sind. Zeichenkette:

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Mehr

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden

Mehr

2.2 Syntax, Semantik und Simulation

2.2 Syntax, Semantik und Simulation 2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?

Mehr

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

Mehr

7. Formale Sprachen und Grammatiken

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

Mehr

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS

Mehr

Literatur Reguläre Ausdrücke

Literatur Reguläre Ausdrücke Literatur Reguläre Ausdrücke [2-1] https://de.wikipedia.org/wiki/regul%c3%a4rer_ausdruck [2-2] http://openbook.rheinwerk-verlag.de/linux/linux_kap08_001.html http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_013_0

Mehr

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,

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

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Kapitel 5: Syntaxdiagramme und Grammatikregeln 5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

Algorithmen & Programmierung. Formale Sprachen Die Logik hinter dem Compiler

Algorithmen & Programmierung. Formale Sprachen Die Logik hinter dem Compiler Algorithmen & Programmierung Formale Sprachen Die Logik hinter dem Compiler Natürlichsprachliche Programme? Können Programme natürlichsprachlich formuliert werden? Kaufe zwei Tüten Mehl und Gemüse!? Implizites

Mehr

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen)

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen) Programmierkurs I 11.11.2002 Gliederung: 1. Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen) EBNF: Wiederholung Die EBNF (Erweiterte Backus-Naur-Form) wurde in der Vorlesung

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

Von der Chomsky-Hierarchie

Von der Chomsky-Hierarchie Von der Chomsky-Hierarchie zur Backus-Naur-Form Ein Beitrag der Theoretischen Informatik zum Siegeszug des Computers Referat von Helmut Schnitzspan Im Rahmen des Seminars Von der EDV zu Facebook Alexander

Mehr

Theoretische Informatik Mitschrift

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

Mehr

Inhalt Kapitel 11: Formale Syntax und Semantik

Inhalt Kapitel 11: Formale Syntax und Semantik Inhalt Kapitel 11: Formale Syntax und Semantik 1 Abstrakte und konkrete Syntax 2 Lexikalische Analyse 3 Formale Sprachen, Grammatiken, BNF 4 Syntaxanalyse konkret 266 Abstrakte und konkrete Syntax Abstrakte

Mehr

Simulation und Testen von Algorithmen

Simulation und Testen von Algorithmen Simulation und Testen von Algorithmen Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 1 Handsimulation von Algorithmen Man versteht einen Algorithmus, wenn man genau weiß, wie er arbeitet.

Mehr

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV 1 Wir betrachten die folgende Signatur

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

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

Mehr

Informatik 1. Prüfung im Wintersemester 1997/98

Informatik 1. Prüfung im Wintersemester 1997/98 Informatik 1 Prüfung im Wintersemester 1997/98 Fachhochschule für Technik und Wirtschaft Reutlingen, Fachbereich Elektronik Prüfungsfach/Studiengang/Semester: Informatik 1 in Elektronik 1 Prüfer: Prof.

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Syntax und Semantik Java: Der Einstieg Imperative Programmierung in Java Algorithmen zur exakten Suche in Texten Objektori Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

1 Formale Sprachen, reguläre und kontextfreie Grammatiken

1 Formale Sprachen, reguläre und kontextfreie Grammatiken Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 1 1 Formale Sprachen, reguläre und kontextfreie Grammatiken Ein Alphabet A ist eine endliche Menge von Zeichen. Die

Mehr

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung

Mehr

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien

Mehr

Syntaxanalyse Ausgangspunkt und Ziel

Syntaxanalyse Ausgangspunkt und Ziel Syntaxanalyse Ausgangspunkt und Ziel Ausgangspunkt: Kontextfreie Grammatik Im Normalfall BNF, manchmal EBNF BNF = Backus-Naur-Form = Produktionsregeln EBNF = erweiterte BNF (+ reguläre Ausdrücke) Prüfung

Mehr

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Wörter Wort Sei Σ ein Alphabet, d.h., eine endliche Menge von Zeichen. Dann bezeichnet

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Verarbeitung von Programmiersprachen Was ist das einfachste

Mehr

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel Java für Anfänger Teil 2: Java-Syntax Programmierkurs 11.-15.10.2010 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 5: Syntax Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 10. November 2015 Martin

Mehr

Die Notwendigkeit für wiederholte Programmausführungen. Agenda für heute, 11. März, 2010

Die Notwendigkeit für wiederholte Programmausführungen. Agenda für heute, 11. März, 2010 Agenda für heute, 11. März, 2010 Die Notwendigkeit für wiederholte Programmausführungen Aufgabe: Die Quadratwurzel einer positiven Zahl berechnen Einschränkung: Es stehen nur arithmetische Operationen

Mehr

6 Kontextfreie Grammatiken

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

Mehr

Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen

Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen Teil IV Semantik imperativer Sprachen 201 1. Einführung Alternativen zur Beschreibung der Semantik: natürliche Sprache (bisher, unpräzise) operational Reduktionssemantik (vgl. Haskell-Semantik in Kap.

Mehr

Inhalt Kapitel 5: Syntax

Inhalt Kapitel 5: Syntax Inhalt Kapitel 5: Syntax 1 Syntax und Semantik 2 Formale Sprachen 3 Backus-Naur Form 4 Chomsky Grammatik 5 Reguläre Ausdrücke 6 Endliche Automaten 180 Syntax und Semantik Syntax Syntax: Festlegung des

Mehr

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 06 Grammatiken, Backus-Naur-Form, Rekursion Clemens Lang T2 1. Juni 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/20 Aufbau und Begriffe Grammatiken Struktur einer

Mehr

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Formale Sprachen, Grammatiken

Formale Sprachen, Grammatiken Formale Sprachen, Grammatiken Informatik I utomatisierungstechnik in der Produktion 17.11.2004 Page 1 of 22 1. Formale Sprachen und Grammatiken Wir hatten gesehen, dass die Regeln dafür, was ein korrekt

Mehr

Grundbegriffe. Grammatiken

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

Mehr

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen Information: ist Rohstoff der Informatik, hat eigenständige Dimension (vgl. Länge, Zeit, elektrische Ladung ist jedoch nicht im SI-System enthalten) läßt sich nicht messen, sie wird berechnet wird durch

Mehr

5.1 Einführung. Beispiele. Syntax. Woher weiß der Compiler, dass ein Programm nicht korrekt ist? Unterscheiden: Grammatik und Semantik

5.1 Einführung. Beispiele. Syntax. Woher weiß der Compiler, dass ein Programm nicht korrekt ist? Unterscheiden: Grammatik und Semantik Algorithmen und Programmierung Wintersemester 2016/2017 Algorithmen und Programmierung 5. Kapitel Syntax Prof. Matthias Werner Professur Betriebssysteme Woher weiß der Compiler, dass ein Programm nicht

Mehr

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration: Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,

Mehr

Programmierpraktikum

Programmierpraktikum TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 02 (03.11.2017) Leo Glavinić (leo.glavinic@tum.de) Cyprian Manthey (cyprian.manthey@tum.de)

Mehr

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken.

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

Tagesprogramm

Tagesprogramm 1 2015-10-22 Tagesprogramm Syntax und Semantik Varianten von Schleifen Varianten von Programmverzweigungen 2 2015-10-22 Syntax und Semantik Darstellung der Syntax Syntax: Aufbau der Sätze bzw. Programme

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c

Mehr

Klausuraufgaben. 1. Wir betrachten die folgende Sprache über dem Alphabet {a, b}

Klausuraufgaben. 1. Wir betrachten die folgende Sprache über dem Alphabet {a, b} Klausuraufgaben 1. Wir betrachten die folgende Sprache über dem Alphabet {a, b} L = {a n b m n > 0, m > 0, n m} a) Ist L kontextfrei? Wenn ja, geben Sie eine kontextfreie Grammatik für L an. Wenn nein,

Mehr

Semantik von Programmiersprachen Theorie und Anwendungen (Informatik III, Wintersemester 03/04)

Semantik von Programmiersprachen Theorie und Anwendungen (Informatik III, Wintersemester 03/04) Eidgenossische Technische Hochschule Zurich Ecole polytechnique federale de Zurich Politecnico federale di Zurigo Swiss Federal Institute of Technology Zurich Semantik von Programmiersprachen Theorie und

Mehr

Assembler Kontrollstrukturen

Assembler Kontrollstrukturen Assembler Kontrollstrukturen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Kontrollstrukturen 1/21 2008-04-03 Kontrollstrukturen

Mehr

1 Syntax von Programmiersprachen

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

Mehr

Die Klasse MiniJava ist in der Datei MiniJava.java definiert:

Die Klasse MiniJava ist in der Datei MiniJava.java definiert: Die Klasse MiniJava ist in der Datei MiniJava.java definiert: import javax.swing.joptionpane; import javax.swing.jframe; public class MiniJava { public static int read () { JFrame f = new JFrame (); String

Mehr

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl Name: Vorname: Matr. Nr.: Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl Zwischenklausur zu Einführung in die Informatik I Hinweis: In dieser Zwischenklausur

Mehr

Motivation natürliche Sprachen

Motivation natürliche Sprachen Motivation natürliche Sprachen (Satz) (Substantivphrase)(Verbphrase) (Satz) (Substantivphrase)(Verbphrase)(Objektphrase) (Substantivphrase) (Artikel)(Substantiv) (Verbphrase) (Verb)(Adverb) (Substantiv)

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Allgemeine Hinweise:

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Midtermklausur Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

Mehr

Grundgebiete der Informatik 2 Lösungsvorschlag zur Probeklausur

Grundgebiete der Informatik 2 Lösungsvorschlag zur Probeklausur Lehrstuhl für Informatik 3 Prof. Dr.-Ing. M. Nagl RWTH Aachen Grundgebiete der Informatik 2 Lösungsvorschlag zur Probeklausur Prof. Dr.-Ing. M. Nagl Simon Becker Ulrike Ranger René Wörzberger Aufgabe 1

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr