Programmierung WS 2002 / 03: Musterlösung zum 12. Übungsblatt
|
|
- Anneliese Fromm
- vor 5 Jahren
- Abrufe
Transkript
1 U N S A R I V E R S A V I E I T A S N I S S Programmierung WS 2002 / 03: Musterlösung zum 12. Übungsblatt Prof. Dr. Gert Smolka, Dipl.-Inform. Thorsten Brunklaus Aufgabe 12.1: Syntaxbäume (10 = ) (a) at at at at at "(" "bool" "->" "int" "->" "bool" ")" "->" Es gibt genau einen Syntaxbaum, denn die Grammatik ist eindeutig. (b) "int" "3" "*" "(" "2" "*" "y" "+" "x" ")" "*" Es gibt genau drei Syntaxbäume, entweder beginnend mit dem obersten, oder. "z" 1
2 (c) "2" "+" "3" "-" "4" "+" "7" "2" "+" "3" "-" "4" "+" "7" "2" "+" "3" "-" "4" "+" "7" 2
3 Aufgabe 12.2: Mehrdeutige Grammatik (6 = 2 + 4) (a) (i) (b) (ii) "x" "x" "x" "x" "x" "x" = "x" "x" Aufgabe 12.3: Zeichendarstellung von Typen (8) fun (Arrow(t,t )) = at t ^ "->" ^ t t = at t and at Bool = "bool" at Int = "int" at t = "(" ^ t ^ ")" Aufgabe 12.4: Zeichendarstellung von Ausdrücken (10) fun (Op(e,Leq,e )) = e ^ "<=" ^ e e = e and (Op(e,Add,e )) = e ^ "+" ^ e (Op(e,Sub,e )) = e ^ "-" ^ e e = e and (Op(e,Mul,e )) = e ^ "*" ^ e e = e and (Con n) = Int.toString n e = "(" ^ e ^ ")" 3
4 Aufgabe 12.5: Lexer und Parser für Typen mit Pfeil und Stern (20 = ) (a) fun lex s = lex nil (String.lode s) (b) and lex ts nil = rev ts lex ts (#"i" :: #"n" :: #"t" ::rs) = lex (INT::ts) rs lex ts (#"-" :: #">" ::rs) = lex (ARROW::ts) rs lex ts (#"*"::rs) = lex (STAR::ts) rs lex ts (#"("::rs) = lex (LPAR::ts) rs lex ts (#")"::rs) = lex (RPAR::ts) rs lex ts cs = raise Error = s [ "->" ] s = a [ "*" s ] a = "int" "(" ")" "->" s "*" a "int" "(" ")" (c) (* *) = s [ "->" ] s = a [ "*" s ] s = a [ "*" s ] a = "int" "(" ")" fun match (a,ts) t = if null ts orelse hd ts <> t then raise Error else (a, tl ts) fun combine a ts p f = let val (a,tr) = p ts in (f(a,a ), tr) end 4
5 fun ts = (case s ts of (t, ARROW::tr) => combine t tr (fn (t, t ) => Arrow(t, t )) sts => sts) and s ts = (case a ts of (t, STAR::tr) => combine t tr s (fn (t, ts) => Star (t :: ts)) sts => sts) and s ts = (case a ts of (t, STAR::tr) => combine t tr s (fn (t, ts) => (t :: ts)) (t, tr) => ([t], tr)) and a (INT::tr) = (Int, tr) a (LPAR::tr) = match ( tr) RPAR a _ = raise Error fun parse ts = (case ts of (t, nil) => t _ => raise Error) Aufgabe 12.6: Kontextfreie Syntax von applikativen Ausdrücken (16 = 4 4) (a) = [ ] = "(" ")" (b) fun (App(e,e )) = e ^ " " ^ e e = e and (Id s) = s e = "(" ^ e ^ ")" (c) = ap ap = [ ap ] = "(" ")" ap "(" ")" 5
6 (d) fun ts = ap ( ts) and (ID _::ts) = ts (LPAR::ts) = (case ts of RPAR::tr => tr _ => raise Error) _ = raise Error and ap (ID _::tr) = ap tr ap (LPAR::tr) = ap ( (LPAR::tr)) ap tr = tr and test ts = ( ts = nil) handle Error => false Aufgabe 12.7: Lexer und Parser für Ausdrücke mit Cons und Append (30 = ) (a) fun lex ts nil = rev ts lex ts (#" " ::cs) = lex ts cs lex ts (#"\n"::cs) = lex ts cs lex ts (#"\t"::cs) = lex ts cs lex ts (#":" :: #":" ::cs) = lex (CONS::ts) cs lex ts (#"@" ::cs) = lex (APPEND::ts) cs lex ts (#"(" ::cs) = lex (LPAR::ts) cs lex ts (#")" ::cs) = lex (RPAR::ts) cs lex ts (c ::cs) = if Char.isAlpha c then lexa ts [c] cs else raise Error (b) and lexa ts xs cs = if not(null cs) andalso Char.isAlphaNum(hd cs) then lexa ts (hd cs::xs) (tl cs) else lex (ID(implode(rev xs)) :: ts) cs fun lex s =lex nil (lode s) = ap [ ("::" "@") ] ap = [ ap ] = "(" ")" "::" "@" ap "(" ")" 6
7 (c) = ap [ ("::" "@") ] ap = ap ap = [ ap ] = "(" ")" "::" "@" ap ap "(" ")" (d) (* = ap [ ("::" "@") ] ap = ap ap = [ ap ] = "(" ")" *) datape opr = Cons Append datape = Id of string Op of * opr * App of * fun match (a,ts) t = if null ts orelse hd ts <> t then raise Error else (a, tl ts) fun combine a ts p f = let val (a,tr) = p ts in (f(a,a ), tr) end fun opa opr (a,a ) = Op(a,opr,a ) 7
8 fun firstat (ID _ ::_) = true firstat (LPAR ::_) = true firstat _ = false fun ts = case ap ts of (a, CONS ::tr) => combine a tr (opa Cons) (a, APPEND::tr) => combine a tr (opa Append) ats => ats and ap ts = ap ( ts) and ap (a,ts) = if firstat ts then ap (combine a ts App) else (a,ts) and (ID s ::ts) = (Id s, ts) (LPAR ::ts) = match ( ts) RPAR _ = raise Error fun parse ts = case ts of (a, nil) => a _ => raise Error 8
Programmierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 12 (Kapitel 13)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 12 (Kapitel 13)
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II) Hinweis: Dieses
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,
MehrLösungvorschlag zum Übungsblatt 6: Software-Entwicklung I (WS 2007/08)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungvorschlag zum Übungsblatt
MehrInhalt 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
MehrVerarbeitung 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 =
MehrKlausur Programmierung WS 2002/03
Klausur Programmierung WS 2002/03 Prof. Dr. Gert Smolka, Dipl. Inf. Thorsten Brunklaus 14. Dezember 2002 Leo Schlau 45 Vor- und Nachname Sitz-Nr. 4711 007 Matrikelnummer Code Bitte öffnen Sie das Klausurheft
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 4 (Kapitel 4)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 4 (Kapitel 4) Hinweis: Dieses Übungsblatt enthält
Mehr1. Probeklausur (Lösung) zu Programmierung 1 (WS 07/08)
Fachschaft Informatikstudiengänge Fachrichtung 6.2 Informatik Das Team der Bremser 1. Probeklausur (Lösung) zu Programmierung 1 (WS 07/08) http://fsinfo.cs.uni-sb.de Name Matrikelnummer Bitte öffnen Sie
MehrEinfü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
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 17 (Best of)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 17 (Best of) Hinweis: Dieses
MehrProgrammierung 1 (Wintersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 5 (Kapitel 5)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wtersemester 2015/16) Lösungsblatt: Aufgaben für die Übungsgruppen: 5 (Kapitel 5) Hweis:
MehrMusterlösung zur 2. Probeklausur Directors Cut TM Programmierung 1 Wintersemester 2012/13
Musterlösung zur 2. Probeklausur Directors Cut TM Programmierung 1 Wintersemester 2012/13 Das Team der Tutoren 02. Februar 2013 Dieter Schlau Name 2442424 Matrikelnummer Musterlösung Bitte öffnen Sie das
Mehr2.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
MehrAufgabe 1 Basiswissen zur Vorlesung (8 Punkte)
Matrikelnummer: 1 Aufgabe 1 Basiswissen zur Vorlesung (8 Punkte) Kreuzen Sie an, ob die folgenden Aussagen richtig oder falsch sind. Bewertung: keine Antwort: 0 Punkte richtige Antwort: +0.5 Punkte falsche
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 5 (Kapitel 6)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 5 (Kapitel 6) Hinweis: Dieses Zusatzübungsblatt
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 9 (Dynamische und Statische Semantik)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 9 (Dynamische und Statische
MehrVorsicht 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
MehrKonzepte 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
MehrMusterlösung zur 1. Probeklausur Programmierung 1 Wintersemester 2012/13
Musterlösung zur 1. Probeklausur Programmierung 1 Wintersemester 2012/13 Das Team der Tutoren 08. Dezember 2012 Dieter Schlau Name 2442424 Matrikelnummer Musterlösung Bitte öffnen Sie das Klausurheft erst
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK WS 11/12 Einführung in die Informatik 2 Klausur Prof. Dr. Andrey Rybalchenko, M.Sc. Ruslán Ledesma Garza 11.02.2011 Name Vorname Studiengang Matrikelnummer
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7) Hinweis: Dieses Übungsblatt enthält
MehrBerechnungsschemata: Funktion als Parameter abstrahiert Operation im Schema, wird bei Aufruf des Schemas konkretisiert
6. Funktionen als Daten, Übersicht Orthogonales Typsystem: Funktionen sind beliebig mit anderen Typen kombinierbar Notation für Funktionswerte (Lambda-Ausdruck): fn (z,k) => z*k Datenstrukturen mit Funktionen
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 13 (Queues, Binary Search)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 13 (Queues, Binary Search)
MehrInhalt Kapitel 5: Funktionen höherer Ordnung
Inhalt Kapitel 5: 1 Funktionen als Argumente 2 Funktionen als Werte einer Funktion 3 Currying 4 Grundlegende 88 Funktionen als Argumente Funktionen als Argumente: map Anwenden einer Funktion auf alle Einträge
MehrLösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07
Lösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07 Dies sind die Lösungsvorschläge zu einer Altklausur, deren Aufgabenstellung an die Inhalte der Vorlesung Grundlagen der Programmierung
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK WS 11/12 Einführung in die Informatik II Übungsblatt 4 Univ.-Prof. Dr. Andrey Rybalchenko, M.Sc. Ruslán Ledesma Garza 21.11.2011 Dieses Blatt behandelt
MehrPrüfung Funktionale Programmierung
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF, IB, IC Sommersemester 2015 Prüfung Funktionale Programmierung Datum : 23.07.2015, 10:30 Uhr Bearbeitungszeit
MehrLösungen zum Übungsblatt 3: Softwareentwicklung I (WS 2006/07)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J.O. Blech Dipl.-Inform. M.J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungen zum Übungsblatt
MehrProgrammierung und Modellierung
Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:
MehrProgrammierung und Modellierung
Programmierung und Modellierung Funktionen höherer Ordnung Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 6 Funktionen höherer Ordnung 1. Funktionen als Parameter und Wert von
MehrGrundprinzipien der funktionalen Programmierung
Grundprinzipien der funktionalen Programmierung Funktionen haben keine Seiteneffekte Eine Funktion berechnet einen Ausgabewert der nur von den Eingabewerten abhängt: 12 inputs + output 46 34 2 Nicht nur
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 7 (Kapitel 7) Hinweis: Dieses Übungsblatt enthält
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 4 (Sortieren und Konstruktoren)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 4 (Sortieren und Konstruktoren)
MehrProgrammierung 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
MehrSo schreiben Sie ein Parser-Programm
Universität des Saarlandes Fachrichtung Informatik Programming Systems Lab Prof. Gert Smolka Proseminar Programmiersysteme WS 03/04 Höhere Funktionale Programmierung: Parser-Kombinatoren Matthias Berg
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 6 (Kapitel 06)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 6 (Kapitel 06) Hinweis: Dieses Übungsblatt enthält
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 11 (Kapitel 12)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 11 (Kapitel 12) Hinweis: Dieses Übungsblatt enthält
Mehr2. Probeklausur zur Vorlesung Programmierung 1 im Wintersemester 2011/2012
2. Probeklausur zur Vorlesung Programmierung 1 im Wintersemester 2011/2012 Das eam der utoren 04. Februar 2012 Name Matrikelnummer Bitte öffnen Sie das Klausurheft erst dann, wenn Sie dazu aufgefordert
MehrDie 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
MehrParadigmen 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)]
MehrEinführung in Haskell
Einführung in Haskell Axel Stronzik 21. April 2008 1 / 43 Inhaltsverzeichnis 1 Allgemeines 2 / 43 Inhaltsverzeichnis 1 Allgemeines 2 Funktions- und Typdefinitionen 2 / 43 Inhaltsverzeichnis 1 Allgemeines
MehrAllgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Klausur Prof. Dr. Helmut Seidl, T. M. Gawlitza, S. Pott,
MehrAdressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine WWW
Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de
MehrPraktikum Funktionale Programmierung Organisation und Überblick
Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Sommersemester 2013 Stand der Folien: SoSe 2013 Adressen Organisatorisches Software Projekt Adressen, Termine Studienleistung
MehrProgrammierung und Modellierung
Programmierung und Modellierung Methodisches Programmieren: Ausnahmebehandlung und Strukturen Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 Ausnahmebehandlung und Strukturen 2 Inhalt 9. Ausnahmebehandlung
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom : Monaden als Berechnungsmuster
16:02:16 2017-01-17 1 [30] Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom 10.01.2017: Monaden als Berechnungsmuster Christoph Lüth Universität Bremen Wintersemester 2016/17 Frohes
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 1 (Kapitel 1)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 1 (Kapitel 1) Hinweis: Dieses Übungsblatt enthält
MehrProgrammierung und Modellierung
Programmierung und Modellierung Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt 12. 1. Fixpunktsätze von Knaster-Tarski und Kleene 2. Denotationelle Semantik von BNF-Grammatiken 3.
MehrProgrammierung 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
MehrKapitel 6: Typprüfung
Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Informatik I Wintersemester 2006 Vorlesung: Prof. Dr. Christian Böhm
Mehr1. Probeklausur Programmierung 1 (WS 2010/2011)
1. Probeklausur Programmierung 1 (WS 2010/2011) Team der Tutoren 11. Dezember 2010 Name Sitzplatz Matrikelnummer Bitte öffnen Sie das Klausurheft erst dann, wenn Sie dazu aufgefordert werden. Sie können
MehrThomas Behr. 17. November 2011
in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über
MehrALP 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
MehrFunktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I Lambda-Kalkül Teil IVb WS 2012/2013 λ-kalkül-parser Hilfsfunktionen: Die break-funktion ist eine Funktion höherer Ordnung, die eine Liste beim ersten Vorkommen einer Bedingung in zwei Listen spaltet.
MehrPhasen eines Compilers. Grundlagen der Programmierung 2. Programm für heute. LR-Parser, Shift-Reduce-Verfahren. Schiebe-Reduziere-Parser
Phasen eines Compilers Grundlagen der Programmierung 2 Schiebe-Reduziere-Parser Prof Dr. Manfred Schmidt-Schauß (unter Mithilfe von PD Dr. David Sabel) Quelltext (String) Syntaxbaum Lexikalische Analyse
MehrEinführung in die Informatik 2
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Manuel Eberl, Lars Hupel, Lars Noschinski Wintersemester 2014/15 Lösungsblatt Endklausur 13. Februar 2015 Einführung in
MehrSchwerpunkte. 5. Auswahl: Bedingte Anweisungen. Syntax. If-Anweisung: Auswahl aus zwei Alternativen. If-Anweisung: Auswahl aus 2 Alternativen
Schwerpunkte 5. Auswahl: Bedingte Anweisungen If-Anweisung: Auswahl aus 2 Alternativen Kurzform von if: Spezialfall der Langform Fehlerquellen Hängendes switch: Spezialfall von if K. Bothe, Institut für
MehrSemantik komparierter Adjektive
Semantik komparierter Adjektive Seminar Relationale Grammatik CIS, WS 2009/10 Hans Leiß Universität München Centrum für Informations- und Sprachverarbeitung 11.01.2010 Die Semantik von Adjektiven bei Böttner
Mehr3.1.4 Benutzerdefinierte Datentypen
3.1.4 Benutzerdefinierte Datentypen Übersicht: Vereinbarung von Typbezeichnern Deklaration neuer Typen Summentypen Rekursive Datentypen Fast alle modernen Spezifikations- und Programmiersprachen gestatten
MehrLex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir?
Lex und Yacc Lt. Worf, scannen Sie das Schiff! 300dpi, Sir? Hagen Paul Pfeifer hagen@jauu.net 29. April 2004 Lex und Yacc Überblick Einführung Lex und Yacc 1 Überblick Einführung Beispiele Lex und Yacc
MehrFahrplan. Algebraische Datentypen. Inhalt. Der Allgemeine Fall: Algebraische Datentypen. Algebraische Datentypen: Nomenklatur
Fahrplan Teil I: Funktionale Programmierung im Kleinen Praktische Informatik 3: Funktionale Programmierung Vorlesung 3 vom 01112016: Algebraische Datentypen Christoph Lüth Universität Bremen Wintersemester
MehrKapitel 6. Konstruktortypen und Ausnahmen. 6.1 Varianten und Konstruktoren
Kapitel 6 Konstruktortypen und Ausnahmen Wir lernen jetzt, wie man mithilfe von Konstruktoren neue Typen deklariert. Mit Konstruktortypen lassen sich Mengen von geordneten Bäumen beschreiben. Außerdem
MehrEinführung in die funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 17. Oktober 2006 Einführung in Haskell: Syntax, Reduktionen, Kernsprachen Haskell,
MehrAnwendung (2. Versuch:-) Entkopplung der Locks
Gut gemeint aber leider fehlerhaft... Jeder Producer benötigt zwei Locks gleichzeitig, um zu produzieren: 1. dasjenige für den Puffer; 2. dasjenige für einen Semaphor. Musser fürden Semaphor einwait()
MehrFunktionale Programmierung mit ML
Funktionale Programmierung mit ML Logische und funktionale Programmierung - Universität Potsdam - M. Thomas - Funkt. Programmierung mit ML - X.1 Wichtigsten Eigenschaften von SML funktionale Programmiersprache
MehrFunktionale Programmierung
Monaden LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 30. April 2009 Monaden Eine Monade ist ein Programmier-Schema für sequentielle Berechnungen. In Haskell
MehrFunktionale Programmierung. ALP I Lambda-Kalkül. Teil III SS Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I Lambda-Kalkül Teil III SS 2011 Parser Hilfsfunktionen: Die break-funktion ist eine Funktion Höherer Ordnung, die eine Liste beim ersten Vorkommen einer Bedingung in zwei Listen spaltet. break ::
MehrSynchronisation der restlichen Eingabe mit der Grammatik Parser kennt an jeder Stelle alle gültigen Nachfolge-Symbole Aufwendig
Fehlerbehandlung Panic Mode Abbruch beim ersten Fehler Übung 3 Allgemeine Fangsymbole Synchronisation der restlichen Eingabe mit der Grammatik Parser kennt an jeder Stelle alle gültigen Nachfolge-Symbole
MehrDEPENDABLE SYSTEMS AND SOFTWARE Fachrichtung 6.2 Informatik Prof. Dr.-Ing. Holger Hermanns
DEPENDABLE SYSTEMS AND SOFTWARE Fachrichtung 6.2 Informatik Prof. Dr.-Ing. Holger Hermanns Frage 1: Betrachten sie das Programm: val x = 3 + 4 val y = 3 * (x + 5) Wie viele Schlüsselwörter (ohne Operatoren)
Mehr- Welche konkreten Invarianten müssen gelten? Berücksichtigen: Invarianten aus Modell und Implem.
234 Implementierung von Abstrakten Datentypen und Korrektheitskriterien Ziel: Zusammenhang zwischen Spezifikation (Modell!) und Implementierung(en) herstellen Spezifikation Implementierung abstraktes Modell?
MehrProgrammieren in Haskell
Programmieren in Haskell Syntax und Semantik von Haskell Programmieren in Haskell 1 Was wir heute (und nächstes mal) machen Datentypdefinitionen Wertdefinitionen, Variablenbindungen Musterbindungen Funktionsbindungen
MehrProgrammierung 1 Probeklausur zur Vorklausur
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 05.12.2015 Programmierung 1 Probeklausur zur Vorklausur Matrikelnummer: Bitte öffnen Sie das Klausurheft
MehrFrank eine Programmiersprache mit Effekten
Frank eine Programmiersprache mit Effekten Tim Baumann Curry Club Augsburg 23. Februar 2017 1 / 30 Paper: GitHub: Do Be Do Be Do von Sam Lindley, Conor McBride und Craig McLaughlin https://github.com/cmcl/frankjnr
MehrLösungshinweise/-vorschläge zum Übungsblatt 2: Grundlagen der Programmierung (WS 2018/19)
Prof. Dr. Ralf Hinze Sebastian Schweizer, M.Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Programmiersprachen Lösungshinweise/-vorschläge zum Übungsblatt 2: Grundlagen der Programmierung
MehrCompilerbau. Martin Plümicke WS 2018/19
Compilerbau Martin Plümicke WS 2018/19 Agenda I. Überblick Vorlesung Literatur II. Compiler Überblick III. Überblick Funktionale Programmierung Einleitung Haskell-Grundlagen IV. Compiler Scanner Parser
MehrProseminar: Fortgeschrittene Programmierung 1
Proseminar: Fortgeschrittene Programmierung 1 Parsen and Backtracking WS 2007 2008 Christian Wawrzinek Übersicht 2 1.Grammatiken 2. Parser 3.Backtracking 4.Kombinatoren Übersicht 3 1.Grammatiken 2. Parser
MehrListen und Listenfunktionen. Grundlagen der Programmierung 2 A (Listen) Listen und Listenfunktionen. Listen? Haskell: Listen
Listen und Listenfunktionen Grundlagen der Programmierung 2 A (Listen) Haskell: Listen Prof. Dr. Manfred Schmidt-Schauß Listen modellieren Folgen von gleichartigen, gleichgetypten Objekten. Ausdruck im
MehrGrundlagen der Programmierung 2. Operationale Semantik
Grundlagen der Programmierung 2 Operationale Semantik Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 29. April 2009 Semantik von Programmiersprachen Semantik = Bedeutung
MehrInhaltsverzeichnis. 1 Polynomordungen [9 Punkte] 2. 2 System F [9 Punkte] 3. 3 Strukturelle Induktion und Folds [9 Punkte] 4
Inhaltsverzeichnis Polynomordungen [9 Punkte] 2 2 System F [9 Punkte] 3 3 Strukturelle Induktion und Folds [9 Punkte] 4 4 Korekursion und Koinduktion [9 Punkte] 5 5 Automatenminimierung [5 Punkte] 6 Seite:
MehrPrüfung Funktionale Programmierung
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF, IB, IC Sommersemester 2014 Prüfung Funktionale Programmierung Datum : 16.07.2014, 12:30 Uhr Bearbeitungszeit
MehrKapitel 3. Funktionale Programmierung in OCAML. Informatik I WS03/04 Martin Hofmann 90
Kapitel 3. Funktionale Programmierung in OCAML Informatik I WS03/04 Martin Hofmann 90 Arbeitsweise von OCAML OCAML hat zwei Modi: Interaktiver Modus: Man gibt Definitionen ein; OCAML wertet sie aus und
MehrÜbungsblatt 6: Softwareentwicklung I (WS 2006/07)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J.O. Blech Dipl.-Inform. M.J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Übungsblatt 6:
MehrImperative und funktionale Sprachen
Imperative und funktionale Sprachen Merkmale imperativer Sprachen: Konzepte: Variablen, Zuweisungen, Sequentialität Programm-Semantik spiegelt Rechnerarchitektur wider Schleifen spielen eine große Rolle
Mehr17. Rekursion 2. Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken
564 17. Rekursion 2 Bau eines Taschenrechners, Ströme, Formale Grammatiken, Extended Backus Naur Form (EBNF), Parsen von Ausdrücken Motivation: Taschenrechner 565 Beispiel Eingabe: 3 + 5 Ausgabe: 8 Binäre
MehrKapitel 3: Eine einfache Programmiersprache. Programmieren in Haskell 1
Kapitel 3: Eine einfache Programmiersprache Programmieren in Haskell 1 Datentypen, Datentypdefinitionen data Instrument = Oboe HonkyTonkPiano Cello VoiceAahs data Musik = Note Ton Dauer Pause Dauer Musik
MehrVU 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
MehrInduktion nach der Länge n von x
Allgemeiner: app (rev x) y = rev1 x y füralle Listenx, y. Beweis: n = 0 : Induktion nach der Länge n von x Dann gilt: x = []. Wirschließen: app (rev x) y = app (rev []) y = app (match [] with [] -> []...)
MehrPraktische Informatik 3: Funktionale Programmierung Vorlesung 3 vom : Algebraische Datentypen
16:01:59 2017-01-17 1 [35] Praktische Informatik 3: Funktionale Programmierung Vorlesung 3 vom 01.11.2016: Algebraische Datentypen Christoph Lüth Universität Bremen Wintersemester 2016/17 PI3 WS 16/17
MehrGrundlagen der Programmierung 2 (2.A)
Grundlagen der Programmierung 2 (2.A) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 5. Mai 2011 Listen und Listenfunktionen Listen modellieren Folgen von gleichartigen,
Mehr1. Probeklausur zur Vorlesung Programmierung 1 im Wintersemester 2011/2012
1. Probeklausur zur Vorlesung Programmierung 1 im Wintersemester 2011/2012 Das Team der Tutoren 03. Dezember 2011 Name Matrikelnummer Bitte öffnen Sie das Klausurheft erst dann, wenn Sie dazu aufgefordert
MehrAdressen. Praktikum Funktionale Programmierung Organisation und Überblick. Termine. Studienleistung
Adressen Adressen, Termine Studienleistung Praktikum Funktionale Programmierung Organisation und Überblick Dr. David Sabel Büro und Email Raum 216, Robert-Mayer-Str. 11-15 sabel@ki.informatik.uni-frankfurt.de
MehrVorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 5A. Lösung zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler)
Fachbereich Informatik und Mathematik Institut für Informatik Vorsemesterkurs Informatik Sommersemester 2017 Aufgabenblatt Nr. 5A zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler) Laden Sie von der
MehrGrundlagen der Programmierung 2 A (Listen)
Grundlagen der Programmierung 2 A (Listen) Haskell: Listen Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Listen und Listenfunktionen Listen modellieren Folgen von gleichartigen, gleichgetypten Objekten.
MehrLR: Syntax. Semantik und Analyse von Funktionalen Programmen (SAFP): LR: Reduktions-Regeln. LR: Reduktions-Regeln
LR: Syntax Semantik und Analyse von Funktionalen Programmen (SAFP): KFPT mit Sharing und Striktheisanalyse: LR Prof. Dr. Manfred Schmidt-Schauß SAFP; WS 2014/15 E ::= V (c E 1... E ar(c) ) (seq E 1 E 2
MehrAusblicke zu Rekursiven Datenstrukturen
Ausblicke zu Rekursiven Datenstrukturen Martin Hofmann Ludwig-Maximilians-Universität München TdI 09, 03.07.09 mh (lmumun) Ausblicke zu Rekursiven Datenstrukturen TdI 1 / 39 Inhalt Ein Mini-Computeralgebra-System
Mehr