Praktikum Funktionale Programmierung Teil 5: Codeerzeugung, Compiler, Interpreter und VM
|
|
- Gerburg Schubert
- vor 5 Jahren
- Abrufe
Transkript
1 Praktikum Funktionale Programmierung Teil 5: Codeerzeugung, Compiler, Interpreter und VM Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009
2 Zeitplan Teil 5 Meilenstein 1 Teil 1: Lexen und Parsen Teil 2: Semantische Analyse und Transformation Meilenstein 2 Teil 3: Abstrakte Maschinen Mark 1 und Mark 2 Meilenstein 3 Teil 4: Nebenläufigkeit: Concurrent Mark 2 Teil 5: Codeerzeugung, Compiler, Interpreter und VM Teil 6: Verbesserungen: Garbage Collection 27. April (2 Wochen) 4. Mai (1 Woche) 1. Juni (4 Wochen) 22. Juni (3 Wochen) 6. Juli (2 Wochen) 13. Juli (1 Woche) Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
3 Teil 5 Teil 5: Codeerzeugung, Compiler, Interpreter und VM Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
4 Teil 5 Überlegen Sie sich eine einfache Repräsentation der Sprache CoreLFPCR als String und implementieren Sie im Modul LFPC.AbsM.CodeGen die Funktionen langtoascii :: CoreLFPCR -> String, die einen Ausdruck in einen String konvertiert. asciitolang :: String -> CoreLFPCR, die einen String in einen CoreLFPCR-Ausdruck konvertiert. Das wichtigste Kriterium beim Entwurf der Kodierung sollte sein, dass asciitolang nur lineare Zeit in der Länge des Strings verbraucht. Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
5 Teil 5 Codierung (z.b.) Man kann z.b. den einzelnen Konstrukten wie, Applikation, Variable, Abstraktion usw. Buchstaben zuordnen. Dürfen nicht wie Variablennamen heißen! Z.B. App V λ letrec Cons case amb por A V L M C D B P Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
6 Teil 5 Codierung (z.b.) Man kann z.b. mitspeichern wieviele Token man lesen muss. (Token sind durch Leerzeichen getrennt) Beispiele: langtoascii (App (V "x") "y") "A 2 V x y" langtoascii (App (Lambda "x" (V "x")) "y") "A 5 L x 2 V x y" ToAscii (Let ["x" :=: App (V "x") "y", "z" :=: V "x"] (V "z")) "M 11 x 5 A 2 V x y z 2 V x V z" ^ ^ - 11 Token fuer Bindungen - Let Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
7 Der Compiler lfpcc Teil 5 lfpcc Der Compiler für LFP +C lfpcvm Die Virtuelle Maschine lfpci Ein Interpreter für LFP +C main im Modul LFPC.Compiler.Main Quelltext aus Datei lesen Lexen, Parsen, Semantische Analyse Konvertierung CoreLFCPR und in String-Repräsentation. String in eine Datei schreiben. Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
8 Der Compiler lfpcc Teil 5 lfpcc Der Compiler für LFP +C lfpcvm Die Virtuelle Maschine lfpci Ein Interpreter für LFP +C Welche Datei lesen / schreiben? Parameter im Aufruf lfpcc -oexample.bin example.lfp Datei example.lfp lesen Stringrepräsentation in example.bin schreiben Datei lesen: readfile, Datei schreiben writefile Nützlich System.Environment (getargs) und evtl. auch System.Console.GetOpt (getopt). Compilieren des Moduls LFPC/Compiler> ghc -cpp -i:../.. --make -o lfpcc Main.lhs Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
9 Teil 5 Die Virtuelle Maschine lfpcvm lfpcc Der Compiler für LFP +C lfpcvm Die Virtuelle Maschine lfpci Ein Interpreter für LFP +C main im Modul LFPC.VM.Main liest ASCII-Darstellung aus Datei führt das Programm aus. Zufallszahl für rands: Funktion randomio aus der Bibliothek System.Random Dateinamen aus Umgebung Aufruf z.b. lfpcvm example.bin Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
10 Interpreter lfpci Teil 5 lfpcc Der Compiler für LFP +C lfpcvm Die Virtuelle Maschine lfpci Ein Interpreter für LFP +C main im Modul LFPC.Interpreter.Main Interaktive Umgebung z.b. Bibliothek System.Console.SimpleLineEditor benutzen zu Beginn des Programms initialise am Ende des Programm restore zwischendrin getlineedited :: String -> IO (Maybe String) aber: benötigt das Readline Package! notfalls: normales getline verwenden Parsefehler abfangen: try, evaluate oder catch aus Control.Exception Professur KIST, SoSe 2009, 19. Juni Praktikum Funktionale Programmierung, Teil 5
Praktikum Funktionale Programmierung 10. Besprechung
Praktikum Funktionale Programmierung 10. Besprechung Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2007 Meilenstein 3 Teil 6: Codeerzeugung, Compiler, Interpreter und VM 9.
MehrPraktikum Funktionale Programmierung Teil 3: Abstrakte Maschinen Mark 1 und Mark 2
Praktikum Funktionale Programmierung Teil 3: Abstrakte Maschinen und Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Zeitplan Teil 3 Meilenstein 1 Teil 1: Lexen und Parsen
MehrPraktikum Funktionale Programmierung Teil 1: Lexen und Parsen
Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Überblick Teil 1: Lexen und Parsen Die Sprache LFP +C Professur
MehrPraktikum Funktionale Programmierung Teil 3: Abstrakte Maschinen
Praktikum Funktionale Programmierung Teil 3: Abstrakte Maschinen Dr. David Sabel Sommersemester 2015 Stand der Folien: SoSe 2015 Übersicht FP-PR Teil 3: Abstrakte Maschinen Sommersemester 2015 D. Sabel
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
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
MehrPraktikum Funktionale Programmierung Teil 1: Lexen und Parsen
Stand der Folien: SoSe 2011 Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Dr. David Sabel Sommersemester 2011 Übersicht FP-PR Teil 1: Lexen & Parsen Sommersemester 2011 D. Sabel 2/20 Übersicht
MehrHallo Haskell. Funktionale Programmierung. Prof. Dr. Oliver Braun Letzte Änderung: :06. Hallo Haskell 1/23
Hallo Haskell Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 15.10.2018 07:06 Hallo Haskell 1/23 Glasgow Haskell Compiler (GHC) der Haskell-Compiler ist der GHC Sie installieren ihn
MehrHallo Haskell. (Funktionale Programmierung) Prof. Dr. Oliver Braun. Letzte Änderung: :08. Hallo Haskell 1/23
Hallo Haskell (Funktionale Programmierung) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 21:08 Hallo Haskell 1/23 Glasgow Haskell Compiler (GHC) der Haskell-Compiler ist der GHC Sie installieren ihn
MehrPraktische 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?
MehrMethoden 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
MehrHaskell for Hackers... or why functional programming matters
... or why functional programming matters Franz Pletz CCC München 27-06-2009 @ GPN8 Fahrplan Ablauf Motivation 1 Ablauf Motivation 2 3 4 Ablauf Ablauf Motivation bei Fragen/Unklarheiten:
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrPraktikum Funktionale Programmierung Teil 2: Typecheck und Transformation
Praktikum Funktionale Programmierung Teil 2: Typecheck und Transformation Dr. David Sabel Sommersemester 2015 Stand der Folien: SoSe 2015 Übersicht FP-PR Teil 2: Typecheck und Transformation Sommersemester
MehrFunktionale Programmierung
Praktikum: Funktionale Programmierung Anleitung zum Praktikum Sommersemester 2007 Stand vom: 4. Juni 2007 Professur für Künstliche Intelligenz und Softwaretechnologie Institut für Informatik Johann Wolfgang
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrFunktionale Programmierung [FP-PR]
Praktikum: Funktionale Programmierung [FP-PR] Anleitung zum Praktikum Sommersemester 2009 Stand vom: 15. Juni 2009 Professur für Künstliche Intelligenz und Softwaretechnologie Institut für Informatik,
MehrPraktikum BKSPP: Blatt 1
Praktikum BKSPP: Blatt 1 Dr. David Sabel SoSe 2012 Aufgabe 1 Inhalt Haskell installieren und ausprobieren CVS-Zugriff testen Bearbeitung: Jeder Teilnehmer für sich alleine Insbesondere CVS Zugriff selbst
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 [] -> []...)
MehrVorsemesterkurs Informatik
Vorsemesterkurs Informatik Programmieren und Programmiersprachen SoSe 2012 Stand der Folien: 26. März 2012 Übersicht Programme und Programmiersprachen Haskell 1 Programme und Programmiersprachen 2 Haskell
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrProgrammierung 2. Übersetzer: Das Frontend. Sebastian Hack. Klaas Boesche. Sommersemester
1 Programmierung 2 Übersetzer: Das Frontend Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Vom Programm zur Maschine Was passiert eigentlich mit unseren
MehrEs gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
MehrLISP. Viele eklige Klammern. Entropia e.v. - CCC Karlsruhe
LISP Viele eklige Klammern LISP: Übersicht Was ist LISP? Programmiersprache mit vielen Klammern Listen orientierte Sprache (LISt Processor) Nicht rein funktional Viele Funktionen mit Nebeneffekten Später
MehrSemantics of a Call-by-Need Lambda Calculus with McCarthy s amb for Program Equivalence
Semantics of a Call-by-Need Lambda Calculus with McCarthy s amb for Program Equivalence David Sabel Institut für Informatik Fachbereich Informatik und Mathematik Goethe-Universität Frankfurt Kolloquium
MehrProgrammtransformationen und Induktion in funktionalen Programmen
Programmtransformationen und Induktion in funktionalen Programmen Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 13. Januar 2009 Einschub: Monadisches IO verzögern Implementierung
MehrBerühmte Informatiker
Berühmte Informatiker Teil 12: Alonzo Church 1903-1995 John McCarthy 1927 - * 14.06.1903 in Washington 11.08.1995 in Hudson Alonzo Church 1924 Bachelor an der Princeton University 1927 Doktorarbeit an
MehrGrundlagen der Programmierung 3 A
Grundlagen der Programmierung 3 A Compiler A: Phasen Lexikalische Analyse; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2018 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein
MehrGrundlagen der Programmierung 2 (Comp-A)
Grundlagen der Programmierung 2 (Comp-A) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 23. Mai 2007 Compiler; Übersetzungprogramme Ein Übersetzer (Compiler) ist ein Programm,
MehrPraktikum BKSPP: Blatt 1
Praktikum BKSPP: Blatt 1 PD Dr. David Sabel WS 2014/15 Aufgabe 1 Inhalt Haskell installieren und ausprobieren CVS-Zugriff testen Bearbeitung: Jeder Teilnehmer für sich alleine Insbesondere CVS Zugriff
MehrOutline. 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
MehrInterpreter - 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Ü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
MehrEinführung Compilergenerierung Bewertung Referenzen. SableCC. Benjamin Daeumlich
06.07.2006 Gliederung 1 2 3 4 . Autor und Name Features Autor Autor und Name Features Autor: Étienne Gagnon : Teil seiner Masterarbeit an der McGill-Universität Montreal vom März 1998 Name Autor und Name
MehrInhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen
Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18
MehrReaktive Programmierung Vorlesung 1 vom : Was ist Reaktive Programmierung?
1 [36] Reaktive Programmierung Vorlesung 1 vom 14.04.15: Was ist Reaktive Programmierung? Christoph Lüth & Martin Ring Universität Bremen Sommersemester 2014 2 [36] Organisatorisches Vorlesung: Donnerstags
MehrGrundlagen der Informatik. Mathias Buhr
Grundlagen der Informatik 1 Übersicht - 2.Übung Rückblick 1. Übung Compiler prozedurale Programmierung in C Variablen Funktionen Kontrollstrukturen Literatur 2 Rückblick Information & Entropie Zahlensysteme
MehrOrganisatorisches. Probleme mit dem herkömmlichen Ansatz. Warum Reaktive Programmierung? The Reactive Manifesto. Amdahl s Law
1 2 4 8 Organisatorisches Vorlesung: Donnerstags 8-10, MZH 1450 Reaktive Programmierung Vorlesung 1 vom 14.04.15: Was ist Reaktive Programmierung? Christoph Lüth & Martin Ring Universität Bremen Sommersemester
MehrGrundlagen der Programmierung 2 (1.A)
Grundlagen der Programmierung 2 (1.A) Einführung Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2018 Grundlagen der Programmierung 2 Geplanter Inhalt der ersten Hälfte: Programmieren in Haskell Definitionen;
MehrEinführung in das Programmieren
Einführung in das Programmieren HelloWorld, NetBeans, Tutle-Umgebung Torsten Thoben, 15. April 2015 Get your tools Um mit Java zu programmieren werden drei Werkzeuge benötigt. 1. Der Java Compiler. Übersetzt
MehrGrundlagen der Programmierung 3 A
Grundlagen der Programmierung 3 A Compiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein Programm, das ein Wort
Mehr2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...
Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....
MehrKommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum
Kommandozeile und Batch-Dateien Molekulare Phylogenetik Praktikum 2 1.1 Die Kommandozeile Alternative zur grafischen Oberfläche (GUI) eines Betriebssystems Vorteile: Sich wiederholende Befehle können gespeichert
MehrEinführung in Java. Ausgewählte Quellen zu Java
Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung
MehrGrundlagen der Programmierung 2 (Comp-A)
Grundlagen der Programmierung 2 (Comp-A) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 16. Juni 2011 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein
MehrLiterale. Programmbestandteile. Variable. Schlüsselwörter. Literal: Ein Literal ist ein vordefinierter Name, der für einen festen Wert steht.
Programmbestandteile Literale Literale Variablen Schlüsselwörter Zusammengesetzte Formen Literal: Ein Literal ist ein vordefinierter Name, der für einen festen Wert steht. Beispiele: Ziffernfolgen sind
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation
MehrZuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte
Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung
MehrFunktionale Programmierung. Monaden. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Funktionale Programmierung Monaden Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 09.10.2018 06:54 Inhaltsverzeichnis Eine Monade.................................... 2 Vergleich
MehrEin-Ausgabe. 9.1 Zustände und Seiteneffekte
9 Ein-Ausgabe Alle Funktionen in Haskell sind referentiell transparent: Die Anwendung einer Funktion F auf ein Argument A liefert stets dasselbe Ergebnis, ist also unabhängig vom Zustand des Systems. Klassische
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
MehrIntuitionistische Lineare Logik
Lineare Logik Intuitionistische Lineare Logik Zusammenhang zur intuitionistischen Logik Termzuweisung und funktionale Interpretation Intuitionistische Lineare Logik Sinn und Zweck : Kontrolle über Ressourcen
MehrAusdrucksbäume in verschiedenen Darstellungen
Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c
MehrProgrammieren in COMMON LISP
Programmieren in COMMON LISP von Prof. Dr. Otto Mayer Universität Kaiserslautern Wissenschaftsverlag Mannheim/Wien/Zürich INHALTSVERZEICHNIS 0 EINLEITUNG 0.1 Entwicklung und Bedeutung von LISP 0.2 Ziele
MehrBeuth Hochschule Einführende Gentle-Programme WS12/13, S. 1
Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1 Einführende Gentle-Programme Dieses Papier soll die Syntax und Semantik (die Schreibweise und Bedeutung) von einfachen Gentle Programmen anhand
MehrPraktikum Compilerbau Sitzung 4 Abstrakter Syntaxbaum
Praktikum Compilerbau Sitzung 4 Abstrakter Syntaxbaum Prof. Dr.-Ing. Gregor Sneltg Andreas Zwkau IPD Sneltg, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg und nationales
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrSyntax von Programmiersprachen
Syntax von Programmiersprachen SEP 209 Programmiersprachen Sprache = Menge von Wörtern, typischerweise unendlich Programmiersprache: Wörter repräsentieren Programme Programm kann auf einem Computer evtl.
MehrJust-In-Time-Compiler (2)
Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler
MehrGrundlagen der Informatik (I+II)
Grundlagen der Informatik (I+II) Themen-Übersicht Dr. Stefan Bosse Universität Bremen 16.7.2007 1. Informationen und Daten A) Darstellung und Verarbeitung von Informationen, Kodierung B) Zahlensysteme
Mehr13 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)
MehrInformatik II. Semesterklausur
Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 5. Juli 2003 Stefan Fischer, Dr. Martin Müller Informatik II Semesterklausur Prüfungsmodul Informatik II (SS 2003)
MehrTag 3. Funktionen. Num erfüllen, haben wir... ja, was nun eigentlich? Bei
Tag 3 Funktionen Heute werden wir den wichtigsten Typ (oder die wichtigste Klasse von Typen) in Haskell überhaupt genau unter die Lupe nehmen: Funktionen, die wir ansatzweise schon am letzten Tag kennengelernt
MehrJust-In-Time-Compiler (2)
Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler
Mehr17 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
MehrEinstieg in die Informatik mit Java
1 / 17 Einstieg in die Informatik mit Java String Tokenizer Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split
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
MehrKlassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object
Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen
MehrGrundlagen der Programmierung 2 (1.A)
Grundlagen der Programmierung 2 (1.A) Einführung Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Grundlagen der Programmierung 2 Geplanter Inhalt der ersten Hälfte: Programmieren in Haskell Definitionen;
MehrIm Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl
Eclipse Eclipse ist eine IDE (Integrierte Entwicklungsumgebung), die speziell auf das Programmieren in Java zugeschnitten (und auch selbst in Java geschrieben) ist. Eine solche IDE vereint die Funktionalität
MehrObjektorientierte Programmierung mite**
mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++
MehrMapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29.
Mapra: C++ Teil 3 Felix Gruber IGPM, RWTH Aachen 29. April 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29. April 2015 1 / 11 Themen vom letzten Mal Debuggen mit gdb Zusammengesetzte Datentypen
MehrPython zur Lösung von AvA Übung 1 VON MORITZ FEY
Python zur Lösung von AvA Übung 1 VON MORITZ FEY Übersicht 2 Einführung Socket-Schnittstellen Datei-Zugriff Aufbau der Nachrichten und Serialisierung Besonderheiten von Python Realisierung des Programms
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen
MehrPraktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration
Praktikum Ingenieurinformatik Termin 4 Funktionen, numerische Integration 1 Praktikum Ingenieurinformatik Termin 4 1. Funktionen. Numerische Integration, Trapezverfahren 1.1. Funktionen Eine Funktion ist
Mehrvii 4 t.scheme: Funktionale Programmierung Funktionen als Daten erster Klasse
Inhaltsverzeichnis Einleitung 1 Kaffee oder Tee?................................ 1 Die t.sprachen.................................. 2 Die Java-Implementierung........................... 5 Ockhams Rasiermesser.............................
MehrDAP2 Praktikum Blatt 3
Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 3 Ausgabe: 5. Mai Abgabe: 6. 8. Mai Bei diesem Übungsblatt
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
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
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
MehrHilfsblatt für C++ Prüfungen im 5. Semester
Hilfsblatt für C++ Prüfungen im 5. Semester Hilfsblatt für C++ Prüfungen im 5. Semester 1 Klassen 2 Win-32 Programmierung 3 Handles 3 Dateien, Files 3 Threads 3 Events 4 Funktionen 5 Einfache Funktionen
MehrCompiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers
ompiler; Übersetzungsprogramme Grundlagen der Programmierung 3 A ompiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Ein Übersetzer (ompiler) ist ein Programm, das ein Wort
MehrCompilerbau (1 KU) SS 2011
Compilerbau (1 KU) 716.077 SS 2011 Univ.-Prof. Dr. Franz Wotawa, Birgit Hofer Institut für Softwaretechnologie 1 Übungsmodus Aufgabenblätter Inhalt dieser LV-Einheit it Programmieraufgabe Vorstellung Programmieraufgabe
MehrDefinition von domänenspezifischen Sprachen mit Xtext: Einführung
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 28. November 2012 Taentzer Modellgetriebene Softwareentwicklung 246 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen
MehrKlassen, Vererbung, Benutzereingabe
Klassen, Vererbung, Benutzereingabe Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der letzten Vorlesungen: Objektorientierte
MehrQuelltextähnlichkeit
Quelltextähnlichkeit String autor = Tobias Jamin ; String projekt = Arte-Fakt ; String seminar = Transformationen ; Date termin = new Date(3, // Tag 2, // Monat 2006); Presentation praesentation = new
MehrEffiziente Virtuelle Maschinen für funktionale Programmiersprachen
Effiziente Virtuelle Maschinen für funktionale Programmiersprachen Proseminar Programmiersysteme WS 2003/04 Lehrstuhl Programmiersysteme Prof. Gert Smolka Universität des Saarlandes Steffen Heil Betreuer:
MehrFunktionale Programmierung. Das Funktionale Quiz. Das Funktionale Quiz. Das Funktionale Quiz
Funktionale Programmierung Das Funktionale Quiz 31.5.2005 Nenne eine Gemeinsamkeit zwischen Typklassen und OO-Klassen Das Funktionale Quiz Das Funktionale Quiz Nenne einen Unterschied zwischen Typklassen
MehrAlgorithmus: Kochrezept
Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis
MehrEinführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung
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
Mehr10 Abstrakte Datentypen
10 Abstrakte Datentypen abstrakte Datentypen generische Implementierung datengesteuerte Programmierung Operationstabelle 10.1 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen
Mehr