SWP Funktionale Programme (2. Teil)

Größe: px
Ab Seite anzeigen:

Download "SWP Funktionale Programme (2. Teil)"

Transkript

1 SWP Funktionale Programme (2. Teil) Bernhard Aichernig Institut für Softwaretechnologie Institute for Software Technology

2 Inhalt Einfache Ausdrücke (Sprachen A +, B bin +, C Mult, VA Var ) Datentypen (Integer, Real, String, BinStack), Sprachen (T, COND) Rekursive funktionale Sprache Interpreter für funktionale Sprache Halteproblem Semantik Institute for Software Technology 2

3 Bisher: Sprache EXP (Expressions) Terme Konditionale Funktionen vordefiniert (Built-in Functions) Aber keine Iterativen Konstrukte Unterprogramme Institute for Software Technology 3

4 Funktionsvariablen Zur Darstellung programmdefinierter Funktionen FVS Menge der Funktionsvariablen Funktionsvariable = Name der Funktion Arität von Funktionen r: FVS N 0 Wenn r(x)=n dann ist X eine n-stellige Funktion Institute for Software Technology 4

5 Beispiel (nicht aus EXP) function X (x: integer, y: real) :real; var i := integer; begin for i:=1 to x do y:=2*y; X := y; end; X.. Funktionsvariable r(x) = 2 Institute for Software Technology 5

6 Anmerkung 2 Arten von Funktionen: Funktionssymbole: Eingebaute Funktionen (+, -, ) Funktionsvariable: Benutzerdefinierte Funktionen Institute for Software Technology 6

7 Syntax von EXP 1. IVS EXP (Variablen) 2. Γ EXP (Konstantensymbole) 3. Ist f ein n-stelliges Funktionensymbol und sind t i EXP (für i=1..n), dann f(t 1,..,t n ) EXP. 4. Ist p ein n-stelliges Prädikatensymbol, sind u i EXP (für i=1..n) und ist t 1,t 2 EXP dann ist if p(u 1,.., u n ) then t 1 else t 2 EXP. 5. Ist F eine n-stellige Funktionsvariable und ist t i EXP (für i=1..n) dann ist F(t 1,..,t n ) EXP. Institute for Software Technology 7

8 Semantikdefinition? Syntax wurde erweitert! auch Semantik muss erweitert werden. Insbesondere benötigen wir eine Interpretation der benutzerdefinierten Ausdrücke F(t 1,..,t n ) Zugriff auf die Definition der Funktion notwendig. Institute for Software Technology 8

9 Funktionsumgebungen (I) function X (x: integer):integer; begin X := (((x*x) + 1) x) * x; end; Wie Variablenumgebungen führen wir Funktionsumgebungen ein FENV.. Menge der Funktionsumgebungen FVS.. Menge der Funktionsvariablen δ: FVS EXP (δ FENV) δx.. Body der Funktion X Institute for Software Technology 9

10 Funktionsumgebungen (II) Zugriff auf Funktionsdefinition über Funktion δ Weitere Annahme: Alle Variablen im Body sind formale Parameter der Funktion. Zum Beispiel ist die Variable x im letzten Beispiel ein formaler Parameter der Funktion X. Ist r(x)=n so gibt es maximal n Variablen in δx (Body von X). Institute for Software Technology 10

11 Funktionsumgebungen (III) Keine explizite Funktionsdeklaration Definition: FENV ist die Menge aller δ mit δ: FVS EXP, sodass δf keine anderen IVS als x 1,..,x n enthält, falls r(f)=n gilt. Institute for Software Technology 11

12 Semantik von EXP 1. I(δ,ω,v) = ω(v) für v IVS 2. I(δ,ω,c) = c 0 für c Γ und c 0 ist die Konstante zu c 3. I(δ,ω,f(t 1,..,t n )) = f 0 (I(δ,ω,t 1 ),..,I(δ,ω,t n )) (f 0 ist Funktion zu f) 4. Für Konditionale gilt: Ist p o (I(δ,ω,u 1 ),..,I(δ,ω,u n ))=T, dann I(δ,ω,if p(u 1,..,u n ) then t 1 else t 2 ) = I(δ,ω,t 1 ) Ist p o (I(δ,ω,u 1 ),..,I(δ,ω,u n ))=F, dann I(δ,ω,if p(u 1,..,u n ) then t 1 else t 2 ) = I(δ,ω,t 2 ) Institute for Software Technology 12

13 Semantik von EXP (cont.) 5. Interpretation von F(t 1,..,t n ) a. Aufruf durch Wert (call-by-value) Definiere neues ω als ω (xi)=i(δ,ω,t i ) für i=1..n wobei x1,..,xn die formalen Parameter in δf sind. I(δ,ω, F(t 1,..,t n )) = I(δ,ω, δf) b. Aufruf durch Name (call-by-name) I(δ,ω, F(t 1,..,t n )) = I(δ,ω, δf[x1 t 1,..,xn t n ]) (die Ausdrücke t i werden statt xi in den Body eingesetzt) Institute for Software Technology 13

14 Anmerkungen zur Semantik Bei call-by-value werden die Argumentausdrücke zuerst ausgewertet und bestimmen das Variablenenvironment während der Auswertung des Funktionenbodies. Bei call-by-name werden die Argumentausdrücke in den Body der Funktion eingesetzt und danach wird der modifizierte Body ausgewertet. Institute for Software Technology 14

15 Beispiel EXP-1 Datentyp S (Stacks) t = F(sub(x)) δf = if ist0?(x1) then sub(x1) else add1(x1) Werte t für ω(x)=100 aus, d.h., berechne I(δ,ω,t)=? Institute for Software Technology 15

16 Beispiel EXP-1: Call by Value I(δ,ω,F(sub(x))) = I(δ,ω, if ist0?(x1) then sub(x1) else add1(x1)) mit I(δ,ω,sub(x)) = = 00 =ω (x1) Bedingung des Konditionals ist0?(x1): I(δ,ω,ist0?(x1)) = ist0?(i(δ,ω,x1))= ist0?(ω (x1)) = ist0?(00) = T = I(δ,ω,sub(x1)) = = 0 Institute for Software Technology 16

17 Beispiel EXP-1: Call by Name I(δ,ω,F(sub(x))) = I(δ,ω, if ist0?(sub(x)) then sub(sub(x)) else add1(sub(x))) Bedingung des Konditionals ist0?(sub(x)): I(δ,ω,ist0?(sub(x))) = ist0?(i(δ,ω,sub(x)) = ist0?(sub(i(δ,ω,x))) = ist0?(sub(ω(x))) = ist0? (sub(100)) = ist0?(00)=t = I(δ,ω, sub(sub(x))) = = 0 Institute for Software Technology 17

18 Beispiel EXP-2 Datentyp der natürlichen Zahlen inkl. Null ℵ = (N 0,+,--,*,=0?,0,1) Programm: t = F(x) δf = if =0?(x1) then 1 else *(x1,f(--(x1,1))) ω(x) = 3 Institute for Software Technology 18

19 Datentyp der Listen Listen enthalten Atome und andere Listen Atome: Menge At, wir schreiben Atome immer in Großbuchstaben Beispiele: ABC, ATOM, NAME,... Induktive Definition der Menge der Listen L 1. At L 2. [ ] L (Leere Liste) 3. Ist l 1,..,l k in L, dann ist auch [ l 1... l k ] L Institute for Software Technology 19

20 Beispiele Listen: [ NAME [ NAME ] ] NAME [ ], [ [ ] ],... Keine Liste NAME NAME [ NAME Institute for Software Technology 20

21 Definierte Funktionen first: Liefert das erste Element einer Liste rest: Liefert alle Listen einer Liste mit Ausnahme des 1. Elements build: Baut eine Liste aus 2 gegebenen Listen auf Institute for Software Technology 21

22 first Formale Definition der Funktionen first(a) = [ ] für a At first([ ]) = [ ] first([ l 1... l k ]) = l 1 für l i L rest rest(a) = [ ] für a At rest([ ]) = [ ] rest([ l 1... l k ]) = [ l 2... l k ] für l i L, k >1 rest([ l 1... l k ]) = [ ] für l i L, k = 1 Institute for Software Technology 22

23 Definitionen (cont.) build(l,a) = a für a At und l L build(l,[ ]) = [ l ] für l L build(l, [ l 1... l k ] ) = [ l l 1... l k ] für l, l i L Institute for Software Technology 23

24 Prädikate auf Listen atom?: Liefert T, wenn das Argument ein Atom ist und F, sonst. atom?(x) = T, wenn x At atom?(x) = F, wenn x At eq?: Liefert T, wenn die beiden Argumente gleich sind. eq?(x,y) = T, wenn x=y eq?(x,y) = F, wenn x y Institute for Software Technology 24

25 Listen L - Zusammenfassung L = (L,first,rest,build,atom?,eq?,[ ],...) Alle Atome sind Konstanten Sprache EXP über L [... ] wird repräsentiert durch [... ] nil für [ ] Beispiel: reverse soll Liste umkehren Institute for Software Technology 25

26 Reverse Funktion δreverse = if atom?(x1) then x1 else reverse2(x1,nil) δreverse2 = if eq?(x1,nil) then x2 else reverse2(rest(x1),build(first(x1),x2)) Ohne Anwendung einer Interpretationsfunktion: reverse2([a B C D], []) reverse2([b C D], [A]) reverse2([c D], [B A]) reverse2([d], [C B A]) reverse2([], [D C B A]) à [D C B A] Institute for Software Technology 26

27 Bisheriger Inhalt Ein Rückblick Datentypen Sprachen über Datentypen Konditionale, Rekursionen Unterscheidung zwischen eingebauten und benutzerdefinierten Funktionen Semantikdefinition Institute for Software Technology 27

28 Erweiterung Sprache über mehrere Datentypen Beispiel: L + N (Listen + Zahlen) Liste L mittels N 0 erweitern Funktionen, die nicht auf Argumenten definiert sind, liefern konstanten Wert Prädikate, die nicht auf Argumenten definiert sind, liefern T oder F. Die erweiterte Menge des Datentyps ist nun L N 0. Die Operationen first, rest, build operieren auch auf Listen von Elementen aus N 0. Institute for Software Technology 28

29 Erweiterungen (cont.) Die Variablensymbole brauchen nicht typisiert zu werden, denn x bezeichnet eine Zahl, wenn I(x) N 0. Beispiel: Funktion NTH liefert n-tes Element einer Liste. δnth = if eq?(x1,nil) then ERROR else if =(x2,1) then first(x1) else NTH(rest(x1),--(x2,1)) Nur sinnvoll für x2>0 Institute for Software Technology 29

30 Repräsentation von Datentypen Im Grunde kann jeder Datentyp R mit abzählbarem Bereich in L repräsentiert werden. Für Datentyp R = (A, f 1,..,f n, p 1,..,p m, c 1,..,c k ) konstruiere Codierung π: A L Für Funktionen f i konstruiere π[f i ] über L Für Prädikate p i konstruiere π[p i ] über L Für Konstante c i konstruiere π[c i ] L Institute for Software Technology 30

31 Codierungseigenschaften Es muß gelten: 1. π[f i ] (π[a]) = π(f i (a)) für a A 2. π[p i ] (π[a]) p i (a) für a A A f i A A p i {T,F} π π π L π[f i ] L L π[p i ] {T,F} Institute for Software Technology 31

32 Beispiel Abbildung des Datentyps der natürlichen Zahlen inkl. Null auf Listen π[0]=[], π[x] = build(1,π[x-1]) π[+(x,y)] = union(π[x], π[y]) π[-(x,y)] = diff(π[x], π[y])... union und diff müssen definiert werden (z.b. als EXP Programm). Institute for Software Technology 32

33 Beispiel (cont.) Die Zahl 3 wird repräsentiert als [ ]. +(2,1) soll auf Funktion abgebildet werden, die [ ] zurückliefert. Institute for Software Technology 33

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

SWP Funktionale Programme (3. Teil)

SWP Funktionale Programme (3. Teil) SWP Funktionale Programme (3. Teil) Bernhard Aichernig Institut für Softwaretechnologie aichernig@ist.tugraz.at Institute for Software Technology Inhalt! Einfache Ausdrücke (Sprachen A +, B bin +, C Mult,

Mehr

SWP Funktionale Programme

SWP Funktionale Programme SWP Funktionale Programme Berhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie {bernhard.aichernig,alexander.felfernig}@ist.tugraz.at Institute for Software Technology Inhalt Einfache

Mehr

Zusammenfassung. Stephan Gspandl Institut für Softwaretechnologie Institute for Software Technology

Zusammenfassung. Stephan Gspandl Institut für Softwaretechnologie Institute for Software Technology Zusammenfassung Stephan Gspandl Institut für Softwaretechnologie sgspandl@ist.tugraz.at SYNTAX 2 Syntax Struktur einer Sprache Werkzeug zur Beschreibung aller möglichen Sätze: Grammatik Tupel (V N,V T,S,Φ)

Mehr

VU Software Paradigmen / SS 2015

VU Software Paradigmen / SS 2015 VU Software Paradigmen 716.060 / SS 2015 Stephan Frühwirt Institute for Software Technology i S T Institute for Software Technology Stephan Frühwirt 1 Inhalt Beweise in EXP 1. Beweise in EXP 2. 3. Abgabe

Mehr

Syntax vs. Semantik. Behandlung von Variablen. Grammatik vs. Induktive Definition. M: T ω...

Syntax vs. Semantik. Behandlung von Variablen. Grammatik vs. Induktive Definition. M: T ω... Syntax vs. Semantik Ein einfaches Beispiel: additive Terme Sei T = L(G) mit G = T }, (, ), +,0,...,9}, P, T mit P = T 0 9 ( T + T ) } M: T ω... Meaning, interpretiert T als additive Ausdrücke M(0) = 0,...,

Mehr

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. 4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit

Mehr

Softwareparadigmen Zusammenfassung

Softwareparadigmen Zusammenfassung Softwareparadigmen Zusammenfassung Dieses Skriptum basiert auf der Softwareparadigmen Übung im Sommersemester 2012 und dem Vorlesungsskriptum 2007. Vorlesung von Alexander Felfernig Übungsskriptum verfasst

Mehr

Outline. 1 Einleitung. 2 Einführung in C. 3 Fortgeschrittenes in C. 4 Einführung in Emacs Lisp. 5 Einführung in Prolog. 6 Formale Semantik

Outline. 1 Einleitung. 2 Einführung in C. 3 Fortgeschrittenes in C. 4 Einführung in Emacs Lisp. 5 Einführung in Prolog. 6 Formale Semantik Outline 1 Einleitung 2 Einführung in C 3 Fortgeschrittenes in C 4 Einführung in Emacs Lisp 5 Einführung in Prolog 6 Formale Semantik Lisp 1958 von John McCarthy erfunden Funktionales Programmierparadigma

Mehr

Konzepte von Programmiersprachen

Konzepte von Programmiersprachen Konzepte von Programmiersprachen Kapitel 3: Ausdrücke Phillip Heidegger Universität Freiburg, Deutschland SS 2009 Phillip Heidegger (Univ. Freiburg) Konzepte von Programmiersprachen KvP 1 / 17 Inhalt Let

Mehr

SWP Prüfungsvorbereitung

SWP Prüfungsvorbereitung 20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c

Mehr

Einführung in die funktionale Programmierung

Einführung in die funktionale Programmierung Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 26. Oktober 2006 Haskell - Einführung Syntax Typen Auswertung Programmierung

Mehr

VU Software Paradigmen / SS 2014

VU Software Paradigmen / SS 2014 VU Software Paradigmen 716.060 / SS 2014 Bernhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie {aichernig, alexander.felfernig}@ist.tugraz.at Institute for Software Technology Inhalt

Mehr

26 Hierarchisch strukturierte Daten

26 Hierarchisch strukturierte Daten Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester

Mehr

Vorkurs Mathematik für Informatiker. 1 Potenzen. Michael Bader, Thomas Huckle, Stefan Zimmer Oktober Kap.

Vorkurs Mathematik für Informatiker. 1 Potenzen. Michael Bader, Thomas Huckle, Stefan Zimmer Oktober Kap. 1 Potenzen Michael Bader, Thomas Huckle, Stefan Zimmer 1. 9. Oktober 2008 Kap. 1: Potenzen 1 Potenzen Definition Für reelle Zahl x R (Basis) und eine natürliche Zahl n N (Exponent): x n := x x x... x }{{}

Mehr

Prüfungsvorbereitung SWP

Prüfungsvorbereitung SWP Prüfungsvorbereitung SWP Bsp.: LL(1) Bsp.: EXP Bsp.: Datentypen Bsp.: Prädikatenlogische Ausdrücke Bsp.: LP 1 Bsp.1: LL(1) - Umwandlung Warum ist folgende Grammatik nicht LL(1)? Beweisen Sie diesen Umstand

Mehr

VU Software Paradigmen

VU Software Paradigmen VU Software Paradigmen Bernhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie {aichernig, alexander.felfernig}@ist.tugraz.at Institute for Software Technology Inhalt Organisatorisches

Mehr

Fallstudie: Nim Spiel

Fallstudie: Nim Spiel Fallstudie: Nim Spiel Angeblich chinesischen Ursprungs (Jianshizi) Interessant für Spieltheorie: vollständig analysierbar Frühzeitig computerisiert 1939 Nimatron (Weltausstellung New York) 1951 Nimrod

Mehr

13 Abstrakte Datentypen

13 Abstrakte Datentypen 13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)

Mehr

LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2

LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2 LOOP-Programme 1 LOOP-Programme verwenden (jeweils) endlich viele Variablen aus VAR := {X 0,X 1,X 2,...}, oft nur mit X,Y,Z,U,V,W bezeichnet, die als Register fungieren. Slide 1 Def (Meyer/Ritchie). LOOP-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

Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen:

Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: take 1 0 ( f i l t e r ( fn x => x mod 2=0) nat ) ; val it =

Mehr

Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.

Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR. Methoden zur Interpretation LISPähnlicher Programmiersprachen Seminarvortrag 20.01.2017 FACHBEREICH 9 TOBIAS STUMM MATR.-NR. 4012917 1 Inhalt Motivation Lisp > Definition > Scheme Interpreter > Definition

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen und rekursive Funktionen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 16. November 2010 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

Interpreter (Hilfsfunktionen)

Interpreter (Hilfsfunktionen) Interpreter (Hilfsfunktionen) -- Berechnet die Liste der gebundenen Variablen boundlist :: Expr -> [String] boundlist (Var x) = [] boundlist (Lambda x e) = x : (boundlist e) boundlist (App e1 e2) = (boundlist

Mehr

Terme. Heute: Terme vergleichen. Struktur von Termen. Operatoren. Logik in der Praxis Logikprogrammierung (Prolog) p.1

Terme. Heute: Terme vergleichen. Struktur von Termen. Operatoren. Logik in der Praxis Logikprogrammierung (Prolog) p.1 Terme Heute: Terme vergleichen Struktur von Termen Operatoren Logik in der Praxis Logikprogrammierung (Prolog) p.1 Termgleichheit: ==?- a == a.?- a == b. no?- X == Y. no?- X == X.?- X == a. no Logik in

Mehr

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März

Mehr

Syntax der Prädikatenlogik: Variablen, Terme. Formeln. Freie und gebundene Variablen, Aussagen. Aufgabe

Syntax der Prädikatenlogik: Variablen, Terme. Formeln. Freie und gebundene Variablen, Aussagen. Aufgabe Syntax der Prädikatenlogik: Variablen, Terme Formeln Eine Variable hat die Form x i mit i = 1, 2, 3.... Ein Prädikatensymbol hat die Form Pi k und ein Funktionssymbol hat die Form fi k mit i = 1, 2, 3...

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Benutzerdefinierte Datentypen Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 1. Aufzählungstypen 2. Typen mit zusammengesetzten

Mehr

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik Formale Grundlagen der Informatik 1 Kapitel 19 & Frank Heitmann heitmann@informatik.uni-hamburg.de 23. Juni 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/25 Motivation Die ist eine Erweiterung

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

1 def Anweisung. 2 Argumentübergabe. 3 Lokale Variablen. 4 Default Argumente. 5 Aufruf mit Schlüsselwort. 6 Variable Argumente. Funktionen in Python

1 def Anweisung. 2 Argumentübergabe. 3 Lokale Variablen. 4 Default Argumente. 5 Aufruf mit Schlüsselwort. 6 Variable Argumente. Funktionen in Python 1 def Anweisung Sommersemester 2007 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung Beispiel: TuNix def def funktionsname([])

Mehr

Funktionen in Python

Funktionen in Python October 19, 2006 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung def def funktionsname([]) : [ Dokumentationsstring

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

Paradigmen der Programmierung

Paradigmen der Programmierung SS 11 Prüfungsklausur 25.07.2011 Aufgabe 5 (6+9 = 15 Punkte) a) Bestimmen Sie jeweils den Typ der folgenden Haskell-Ausdrücke: ( 1, 2 :"3", 4 < 5) :: (Char, String, Bool) [(last, tail), (head, take 5)]

Mehr

17 Interpretation. Scheme-Programme als Datenstruktur. Interpretation von Ausdrücken. Interpretation von Lambda. Lambda als Datenstruktur

17 Interpretation. Scheme-Programme als Datenstruktur. Interpretation von Ausdrücken. Interpretation von Lambda. Lambda als Datenstruktur 17 Interpretation Scheme-Programme als Datenstruktur Interpretation von Ausdrücken Interpretation von Lambda Lambda als Datenstruktur Toplevel Definitionen set! 17.1 Programme als Datenstruktur 17.1.1

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Teil 1: Ein motivierendes Beispiel

Teil 1: Ein motivierendes Beispiel Einführung in das Programmieren Prolog Sommersemester 2006 Teil 1: Ein motivierendes Beispiel Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax,

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 9. Prädikatenlogik Syntax und Semantik der Prädikatenlogik Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Syntax der

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Fallstudie: Nim Spiel

Fallstudie: Nim Spiel Fallstudie: Nim Spiel Angeblich chinesischen Ursprungs (Jianshizi) Interessant für Spieltheorie: vollständig analysierbar Frühzeitig computerisiert 1939 Nimatron (Weltausstellung New York) 1951 Nimrod

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

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

2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.

2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert. 2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int

Mehr

Abstrakte Syntax von Prolog (1)

Abstrakte Syntax von Prolog (1) 3. Prolog Syntax 3-1 Abstrakte Syntax von Prolog (1) Abstrakte und konkrete Syntax: Abstrakte Syntax: Nur Datenstrukturen, die der Parser anlegt (z.b. Operatorbaum). Konkrete Syntax: Zeichenketten, die

Mehr

Bisher. Programme. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Bisher. Programme. Ausdrücke und ihre Auswertung (Substitutionsmodell) Bisher Programme Ausdrücke und ihre Auswertung (Substitutionsmodell) Konstruktionsanleitung für Prozeduren Kurzbeschreibung Sorten und Verträge Gerüst Testfälle Rumpf ausfüllen Testen 2.21 Erinnerung:

Mehr

Programmieren als Grundkompetenz

Programmieren als Grundkompetenz Programmieren als Grundkompetenz Irrtümer, Chancen und Methodik der Programmierausbildung Michael Sperber sperber@informatik.uni-tuebingen.de Vorgeschichte... AP Computer Science (1987/1998) Informatik

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Maximilian Haslbeck Fabian Mitterwallner Georg Moser David Obwaller cbr.uibk.ac.at Zusammenfassung der letzten LVA Definition Eine Registermaschine (RM) R ist

Mehr

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell) Bisher Programme, Sequenzen von Formen Ausdrücke und ihre Auswertung (Substitutionsmodell) Konstruktionsanleitung für Prozeduren Kurzbeschreibung Sorten und Verträge Gerüst Testfälle Rumpf ausfüllen Testen

Mehr

Logik Vorlesung 7: Grundlagen Prädikatenlogik

Logik Vorlesung 7: Grundlagen Prädikatenlogik Logik Vorlesung 7: Grundlagen Prädikatenlogik Andreas Maletti 5. Dezember 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen

Mehr

Beispiele: Funktionsabstraktion (3) Funktionsdeklaration. Funktionsdeklaration (2) Funktionsdeklaration (3) 3. Abstraktion über Funktionsbezeichner:

Beispiele: Funktionsabstraktion (3) Funktionsdeklaration. Funktionsdeklaration (2) Funktionsdeklaration (3) 3. Abstraktion über Funktionsbezeichner: Beispiele: Funktionsabstraktion (3) Funktionsdeklaration 3. Abstraktion über Funktionsbezeichner: Ausdruck: f (f x) Abstraktion: \ f x -> f (f x) Mit Bezeichnervereinbarung: twice = \ f x -> f (f x) erg

Mehr

Vorsicht bei redundanten und unvollständigen Matches!

Vorsicht bei redundanten und unvollständigen Matches! Vorsicht bei redundanten und unvollständigen Matches! # let n = 7;; val n : int = 7 # match n with 0 -> "null";; Warning: this pattern-matching is not exhaustive. Here is an example of a value that is

Mehr

Strukturierte Spezifikation: Anreicherung um nichtrekursive und rekursive Definitionen

Strukturierte Spezifikation: Anreicherung um nichtrekursive und rekursive Definitionen Strukturierte Spezifikation: Anreicherung um nichtrekursive und rekursive Definitionen 13. Mai 2013 G. Schellhorn, D. Haneberg: Formale Methoden im Software Engineering 128 / 290 Strukturierte Spezifikationen

Mehr

Objektorientierte Programmierung mit C++ (WS 2016/2017)

Objektorientierte Programmierung mit C++ (WS 2016/2017) Institut für Numerische Mathematik Dr. Andreas F. Borchert und Dr. Michael C. Lehn 26. Januar 2017 Blatt 12 Objektorientierte Programmierung mit C++ (WS 2016/2017) Abgabe bis zum 2. Februar 2017, 16:00

Mehr

Ansätze zur Erfassung von Faktoren durch Prüfungsaufgaben. (Diskussionen in Dagstuhl sowie mit Prof. Nickolaus, Technikpädagogik, U Stuttgart)

Ansätze zur Erfassung von Faktoren durch Prüfungsaufgaben. (Diskussionen in Dagstuhl sowie mit Prof. Nickolaus, Technikpädagogik, U Stuttgart) Taxonomie + Schwierigkeit Ansätze zur Erfassung von Faktoren durch Prüfungsaufgaben. (Diskussionen in Dagstuhl sowie mit Prof. Nickolaus, Technikpädagogik, U Stuttgart) Beurteilen Synthese Konstruktion

Mehr

Funktionen in Python

Funktionen in Python Funktionen in Python Prof. Dr. Rüdiger Weis Beuth Hochschule für Technik Berlin 1 / 31 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente

Mehr

Aufgabe: Platz-effiziente Kompression von Textdaten

Aufgabe: Platz-effiziente Kompression von Textdaten 7.3 Huffman-Bäume Anwendung von Binärbäumen Aufgabe: Platz-effiziente Kompression von Textdaten Standardcodierungen von Textdaten ISO-8859-1: 8 Bit pro Zeichen UTF-16: 16 Bit pro Zeichen Codierungen mit

Mehr

2 Syntax versus Semantik

2 Syntax versus Semantik 2 Syntax versus Semantik There are 10 types of people: those that understand binary, and those that don t. Bisher haben wir lediglich die Syntax von Sprachen sowie verschiedene Methoden zu ihrer Spezifikation

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

ALP I. Funktionale Programmierung

ALP I. Funktionale Programmierung ALP I Funktionale Programmierung Zusammengesetzte Datentypen in Haskell WS 2012/2013 Zusammengesetzte Datentypen Tupel List String Zusammengesetzte Datentypen Tupel-Datentyp Ein Tupel ist eine Ansammlung

Mehr

Übungsblatt 4 Musterlösung

Übungsblatt 4 Musterlösung Numerik gewöhnlicher Differentialgleichungen MA2304 - SS6 Übungsblatt 4 Musterlösung Aufgabe 7 (Nullstellen als Eigenwerte) Die Polynome {S n } n=0,,2,, S n P n, mit führem Koeffizienten eins, heißen Orthogonalpolynome

Mehr

Theorembeweiserpraktikum SS 2016

Theorembeweiserpraktikum SS 2016 Institut für Programmstrukturen und Datenorganisation Lehrstuhl Programmierparadigmen Am Fasanengarten 5 76131 Karlsruhe http://pp.ipd.kit.edu/ Theorembeweiserpraktikum SS 2016 http://pp.ipd.kit.edu/lehre/ss2016/tba

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 9. Prädikatenlogik Syntax und Semantik der Prädikatenlogik Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Syntax der

Mehr

DieÜbersetzung funktionaler Programmiersprachen

DieÜbersetzung funktionaler Programmiersprachen DieÜbersetzung funktionaler Programmiersprachen 107 11 Die Sprache PuF Wir betrachten hier nur die Mini-Sprache PuF( Pure Functions ). Insbesondere verzichten wir(vorerst) auf: Seiteneffekte; Datenstrukturen;

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

1 Potenzen und Polynome

1 Potenzen und Polynome 1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels

Mehr

SWP Logische Programme Teil 2

SWP Logische Programme Teil 2 SWP Logische Programme Teil 2 Bernhard Aichernig Institut für Softwaretechnologie aichernig@ist.tugraz.at Institute for Software Technology Inhalt! Motivation! Logische Programme (LP)! Resolution! Unifikation!

Mehr

Terme. Programmierkurs Prolog p.1

Terme. Programmierkurs Prolog p.1 Terme Programmierkurs Prolog p.1 Heute: Terme vergleichen Struktur von Termen Operatoren Programmierkurs Prolog p.2 Termgleichheit:?- a a.?- a no?- X no b. Y.?- X X.?- X no a. Programmierkurs Prolog p.3

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Semantik von Programmiersprachen SS 2017

Semantik von Programmiersprachen SS 2017 Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen

Mehr

Vortrag. Vortrag im Rahmen der Master-Vorlesung Semantik von Programmiersprachen an der FH München, Fachbereich Informatik

Vortrag. Vortrag im Rahmen der Master-Vorlesung Semantik von Programmiersprachen an der FH München, Fachbereich Informatik Vortrag β- and η-conversion Vortrag im Rahmen der Master-Vorlesung Semantik von Programmiersprachen an der FH München, Fachbereich Informatik von Stefan Hertel (sh_ccbiker@gmx.de Thomas Wöllert (thomas@woellert.net

Mehr

Typisierung. Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung. 3.

Typisierung. Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung. 3. Typisierung Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung 2 Untypisierte Sprachen erfordern Methodensuche zur Laufzeit bei Misserfolg

Mehr

Interpreter - Gliederung

Interpreter - Gliederung Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache

Mehr

Die primitiv rekursiven Funktionen

Die primitiv rekursiven Funktionen Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente

Mehr

Einführung in das λ-kalkül

Einführung in das λ-kalkül Einführung in das λ-kalkül Max Wagner IPD Snelting 1 3.11.2017 Max Wagner - Einführung in das λ-kalkül IPD KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Syntax Abstrakte Syntax:

Mehr

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Überladung und Konversion in Haskell. Typisierung in Haskell

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Überladung und Konversion in Haskell. Typisierung in Haskell Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Sommersemester

Mehr

Wiederholung Signatur, Terme

Wiederholung Signatur, Terme Was bisher geschah (algebraische) Strukturen zur zusammenhängenden Modellierung von Mengen von Individuen (evtl. verschiedener Typen) Funktionen auf Individuen dieser Mengen Relationen zwischen Individuen

Mehr

HASKELL KAPITEL 2.1. Notationen: Currying und das Lambda-Kalkül

HASKELL KAPITEL 2.1. Notationen: Currying und das Lambda-Kalkül HASKELL KAPITEL 2.1 Notationen: Currying und das Lambda-Kalkül Bisheriges (Ende VL-Teil 1) weite :: (Float,Float) ->Float weite (v0, phi) = (square(v0)/9.81) * sin(2 * phi) (10, 30 ) smaller ::(Integer,

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK THEORETISCHE INFORMATIK UND LOGIK 13. Vorlesung: Prädikatenlogik: Syntax und Semantik Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 1. Juni 2018 Halbzeit: Zusammenfassung und Ausblick Markus

Mehr

10 Abstrakte Datentypen

10 Abstrakte Datentypen 10 Abstrakte Datentypen abstrakte Datentypen generische Implementierung datengesteuerte Programmierung Operationstabelle 10.1 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen

Mehr

Geheimnisprinzip: (information hiding principle, Parnas 1972)

Geheimnisprinzip: (information hiding principle, Parnas 1972) 2. Abstrakte Datentypen 2.0 Begriffe Geheimnisprinzip: (information hiding principle, Parnas 1972) Zugriffe auf Teile einer Programmeinheit, die für die reguläre Benutzung nicht erforderlich sind, sollten

Mehr

Beschreibung von Werten: Beschreibung von Werten: (2) Begriffsklärung: (Ausdruck, expression) (2) Begriffsklärung: (Ausdruck, expression)

Beschreibung von Werten: Beschreibung von Werten: (2) Begriffsklärung: (Ausdruck, expression) (2) Begriffsklärung: (Ausdruck, expression) Beschreibung von Werten: Beschreibung von Werten: (2) mittels Konstanten oder Bezeichnern für Werte: 23 " Ich bin eine Zeichenreihe" True x durch direkte Anwendung von Funktionen: abs (-28382) "Urin" ++

Mehr

8 Prozeduren als Daten

8 Prozeduren als Daten 8 Prozeduren als Daten Prozeduren als Parameter Prozeduren als Ergebnisse Prozeduren höherer Ordnung (higher-order procedures) Programmierung höherer Ordnung Verwendung als Abstraktionsmittel 8.1 Prozeduren

Mehr

5. Übung - Kanalkodierung/Programmierung

5. Übung - Kanalkodierung/Programmierung 5. Übung - Kanalkodierung/Programmierung Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Kanalkodierung a Folgende Kodes stehen Ihnen zur Verfügung: Kode 1: 0000000 Kode

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.3 Primitiv rekursive und µ-rekursive Funktionen

1.3 Primitiv rekursive und µ-rekursive Funktionen Definition 1.11 Die Klasse der primitiv rekursiven Funktionen (a) Basisfunktionen: (1.) die konstanten Funktionen c (c N) (2.) die Projektionen Π m i (x 1,...,x m ) = x i (1 i m) (3.) die Nachfolgerfunktion

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Zusammenfassung und Ausblick Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt 13. Zusammenfassung und Ausblick 1. Thema der Vorlesung 2. Beispiel rekursive

Mehr

Praktische Informatik 3

Praktische Informatik 3 Praktische Informatik 3 Christian Maeder WS 03/04 Vorlesung vom 12.1.2004: Ein/Ausgabe in funktionalen Sprachen Vorlesung vom 12.1.2004: Ein/Ausgabe in funktionalen Sprachen 3 Inhalt Wo ist das Problem?

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

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

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

EWS, WS 2016/17 Pfahler I-1

EWS, WS 2016/17 Pfahler I-1 Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler Funktionen EWS, WS 2016/17 Pfahler I-1 Funktionen Funktion: Rechenvorschrift mit einem Namen und ggf. formalen Parametern,

Mehr