Softwareparadigmen SS 2016, Übungsblatt P
|
|
- Hans Holst
- vor 7 Jahren
- Abrufe
Transkript
1 Blatt P Seite 1 Softwareparadigmen SS 2016, Übungsblatt P Abgabe: 25. Mai 2016, bis 16:00 Uhr 1. Bilden Sie eine Zweiergruppe mit einem/einer weiteren LV-TeilnehmerIn 2. Erstellen Sie mittels TUGrazOnline ein SVN-Repository für ihre Gruppe nach dem Muster <MatrikelNr1> <MatrikelNr2>. Beispiel für StudentInnen mit Matrikelnummern und : Fügen Sie die Studienassistenten (Stephan Frühwirt, Claudio Kirchmair, Benedikt Maderbacher und Thorsten Ruprechter) als Reader hinzu ( Bedienstete wählen ) 4. Beurteilt wird der letzte Commit vor der Deadline. Spätabgaben werden nicht akzeptiert! Aufbau des Repository Im Root-Ordner des Repository muss sich ein Textfile group.txt befinden, welches in genau zwei Zeilen die beiden Namen und Matrikelnummern der Gruppenmitglieder enthält. Formatvorlage (am besten kopieren): Alice Musterfrau, Bob Mustermann, Auf der Lehrveranstaltungsseite finden Sie ein Framework Framework.zip entpacken Sie dieses in den Root-Ordner. Ihre Lösungen werden automatisiert getestet, halten Sie sich daher bitte an folgende Ordnerstruktur, und stellen Sie sicher, dass ihr Projekt mit SBT compiliert, ausgeführt und getestet werden kann. Vorlage für die Ordnerstruktur: <Repository-URL>/group.txt <Repository-URL>/SWPInterpreter/build.sbt <Repository-URL>/SWPInterpreter/src/main/scala/AST.scala <Repository-URL>/SWPInterpreter/src/main/scala/Value.scala <Repository-URL>/SWPInterpreter/src/main/scala/Interpreter.scala <Repository-URL>/SWPInterpreter/src/main/scala/Parser.scala <Repository-URL>/SWPInterpreter/src/main/scala/SWPInterpreter.scala <Repository-URL>/SWPInterpreter/src/test/scala/SWPInterpreterTests.scala Die Binärdaten in SWPInterpreter/target und SWPInterpreter/project/target sollen nicht mit eingecheckt werden.
2 Blatt P Seite 2 Parser (15 P.) Implementieren Sie einen Parser der folgende, an EXP angelehnte, Sprache parsen kann. Definieren Sie dazu einen Abstract Syntax Tree mittels case classes (AST.scala) und schreiben sie den dazu passenden Parser mit der Scala Parser Combinator Library (Parser.scala). Die Grammatik ist gegeben als EBNF(Extended Backus Naur Form), es werden folgende Konstrukte verwendet: [ ] 0 oder einmal { } 0 bis n-mal, Verknüpfung Auswahl " " String Token Hinweise: Implementieren Sie die Tokens id und int als RegEx. Sie können alle in der Parser Library vorhanden Hilfsfunktionen verwenden. Besonders hilfreich sind: opt, rep, rep1, repsep und rep1sep. Grammatik id = (a-z)(a-z a-z 0-9)*; int = 0 (1-9)(0-9)* -(1-9)(0-9)*; program = funcdecls, expression; funcdecls = "{", { funcdecl }, "}" funcdecl = "fun", id, "(", [ { id, "," }, id ], ")", "=", expression, ";"; expression = cond function int list variable; cond = "if", predicate, "then", expression, "else", expression; predicate = id, "?", "(", [ { expression, "," }, expression ], ")"; function = id, "(", [ { expression, "," }, expression ], ")"; list = "[", [ { expression, "," }, expression ], "]"; variable = id;
3 Blatt P Seite 3 Interpreter für eingebauten Funktionen (10 P.) Schreiben Sie einen Interpreter der folgende Untermenge der Sprache(EXP mit Listen und Integer) beherrscht: Eingebaute Funktionen add(a,b) a + b negate(a) a ( 1) first(xs) xs.head rest(xs) xs.tail build(x,xs) x :: xs Prädikate eq?(a,b) a = b lt?(a,b) a < b Konditionale if p then a else b a wenn p = T if p then a else b b wenn p = F Implementieren Sie dazu den Value AST sowie den dazu gehörigen Prettyprinter (AST.scala) und die interpret Funktion(Interpreter.scala). Achten Sie bei der Stringgenerierung darauf das die Vorgaben genau eingehalten werden, da wir diesen Output für unsere Tests verwenden! User definierte Funktionen (10 P.) Erweitern Sie den Interpreter um User definierte Funktionen. Die Funktionen sollen wie im Skriptum auf Seite 59 beschrieben mit einer call-by-value Semantik interpretiert werden.
4 Blatt P Seite 4 Let Bindings (5 P.) Erweitern Sie den Interpreter um Let Bindings. Dazu wird die Grammatik um folgende Expressions ergänzt: expression =... let; let = "let", { binding }, "in", expression, "end"; binding = "val", variable, "=", expression, ";"; Semantik Mit let können lokale Variablen definiert werden. Die Variablen die nach einem let erstellt werden sollen in der Expression nach in verwendet werden können. Variablen sollen auch in bindings die später in der gleichen let Expression definiert werden, verwendet werden können. Beispiel let val a = 10; val b = add(a,22); in add(a,b) end Soll zu 42 evaluieren. Refs (10 P.) Erweitern Sie den Interpreter um Referenzen auf veränderbare Speicherstellen. Dazu wird die Grammatik um folgende Expressions ergänzt: expression =... deref assign sequence deref = "!", variable; assign = variable, ":=", expression; sequence = "{" {expression, ";"}, expression "}"; Neue eingebaute Funktionen ref(a) Erwartet einen Wert a, erstellt eine neue Speicherstelle in der a gespeichert ist und gibt die Adresse/Referenz dieser Speicher stelle zurück. Semantik der neuen Operatoren! erwartet eine Referenz und gibt den an dieser Stelle gespeicherten Wert zurück. := erwartet auf der linken Seite eine Referenz und auf der rechten Seite einen Wert. Der Wert in der Speicherstelle wird auf den neuen Wert gesetzt. Eine assign Expression evaluiert zum Wert der zugewiesen wurde. Mit ; können mehrere Expressions nacheinander ausgeführt werden. Es werden alle Expressions evaluiert und Seiteneffekte wie := ausgeführt. Eine sequence Expression evaluiert zum Ergebnis der letzten Expression.
5 Blatt P Seite 5 Beispiel let val x = ref(add(5,1)); val y = ref(10); in { x := add(!y, 20); y := 100;!x } end Soll zu 30 evaluieren. Hinweis Sie können zum speichern der veränderbaren Speicherstellen eine collection.mutable.map verwenden. Die Keys für die Map können Sie mit einer mutable Variable erzeugen z.b. var refcounter:int = 0 Sie müssen nicht mehr verwendete Speicherstellen nicht aus der Map entfernen. Framework Auf der Homepage finden Sie ein SBT Project SWPInterperter. In diesem ist eine build.sbt Datei sowie unter src/main/scala ein Grundgerüst für die Aufgabe enthalten. Um das Projekt zu starten müssen Sie zuerst SBT installieren, dann können Sie die SBT Konsole starten indem sie eine Komandozeile im Projektverzeichnis(Das Verzeichnis in dem sich die build.sbt befindet) öffnen und sbt eingeben. Zum compilieren geben Sie compile ein. Das erste Compilieren kann etwas länger dauern da, zuerst Scala und die notwendigen Libraries heruntergeladen und installiert werden müssen. Um das Programm in test.exp zu interpretieren geben sie run test.exp ein.
6 Blatt P Seite 6 Tests In der Datei src/test/scala/swpinterpretertests finden sie einige Tests um ihr Program zu testen. Diese Tests decken nicht alle Funktionalitäten ab sondern sollen zur Orientierung dienen. Nutzten Sie diese Tests auch um zu überprüfen das ihre Ausgabe Formatierung korrekt ist. Sie können auch weitere Tests zu SWPInterpreterTests hinzu fügen um ihre Implementierung zu testen, diese Tests können sie auch gerne über die Newsgroup, oder auf anderem Weg, mit anderen Studierenden teilen. Tests ausführen Die Test können in der SBT Konsole ausgeführt werden. Leeres Framework: > test [info] SWPInterpreterTests: [info] - Parser minimal example *** FAILED *** [info] scala.notimplementederror: an implementation is missing... Vollständig Implementiert: > test [info] SWPInterpreterTests: [info] - Parser minimal example... [info] Tests: succeeded 8, failed 0, canceled 0, ignored 0, pending 0 [info] All tests passed. [success] Total time: 7 s, completed Apr 20, :50:47 PM Viel Erfolg!
Softwareparadigmen SS 2015, Übungsblatt P
Blatt P Seite 1 Softwareparadigmen SS 2015, Übungsblatt P Abgabe: 27. Mai 2015, bis 16:00 Uhr 1. Bilden Sie eine Zweiergruppe mit einem/einer weiteren LV-TeilnehmerIn 2. Erstellen Sie mittels TUGrazOnline
MehrSoftwareparadigmen SS 2018, Übungsblatt P
Softwareparadigmen SS 2018, Übungsblatt P Allgemeines Abgabe: 13. Juni 2018, bis 18:00 Uhr 1. Die Abgabe erfolgt über das SVN Ihrer Gruppe, im Ordner SWPInterpreter. 2. Beurteilt wird der letzte Commit
MehrProgrammieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
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
Mehrhue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrVU 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
MehrSoftwareparadigmen EXP-Compiler Dokumentation v1.1 ( )
Softwareparadigmen EXP-Compiler Dokumentation v1.1 (8.5.2016) Stephan Frühwirt Inhaltsverzeichnis 1 Aufbau, Tools und Ausführung 2 1.1 Ausführung....................................... 2 2 Sprachdefinition
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
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
MehrSemantik 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: Einführung in die Programmierung Übungsblatt 11
252-0027-00: Einführung in die Programmierung Übungsblatt 11 Abgabe: 12. Dezember 2017, 13:00 Checken Sie die neue Übungs-Vorlage aus. Vergessen Sie nicht, Tests zu schreiben! Aufgabe 1: Linked List (Bonus!)
Mehr3.1 Reservierte Wörter
3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der
MehrInformatik II - Tutorium 4
Informatik II - Tutorium 4 Vincent Becker vincent.becker@inf.ethz.ch 22.03.2017 Vincent Becker 27.03.2017 1 Übungsblatt 3 Vincent Becker 27.03.2017 2 U3.A1 Programmverifikation static int f(int i, int
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
MehrVU 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
Mehrhue13 January 30, 2017
hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrProbeklausur. Musterlösung
Programmierkurs Probeklausur Dr. Steffen Müthing Abgabe 08. Februar 2019 IWR, Universität Heidelberg ipk-exercises:2018-ws-55-gc187ae0 Allgemeine Hinweise: Probeklausur Dieses Übungsblatt wird nicht bewertet.
Mehr3.4 Struktur von Programmen
3.4 Struktur von Programmen Programme sind hierarchisch aus Komponenten aufgebaut. Für jede Komponente geben wir Regeln an, wie sie aus anderen Komponenten zusammengesetzt sein können. program ::= decl*
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
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
Mehr13 Reguläre Ausdrücke
13 Reguläre Ausdrücke 13.1 Übungsaufgabe 13.1.1 Aufgabe 1 Schreiben Sie ein C++ Programm, das eine txt-datei (UTF8 kodiert) öffnet und mit wcin alle Wörter einliest, Punktuationszeichen am Anfang und Ende
MehrInstitut für Programmierung und Reaktive Systeme 20. November Programmieren I. 4. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 20. November 2017 Programmieren I 4. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrSTATA II: Daten- und Analysevorbereitung (Teil 1)
STATA II: Daten- und Analysevorbereitung (Teil 1) 10. November 2003 Wiederholung I K:\mo14-16 Aufgaben: 1. Stellen Sie den aktuell gültigen Pfad \data fest und wechseln Sie in das \project1 Verzeichnis
Mehr3 Syntax von Programmiersprachen
3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme
MehrVortrag. 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
MehrSWP Funktionale Programme (2. Teil)
SWP Funktionale Programme (2. 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,
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrObjektorientierte 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
MehrHello World! Eine Einführung in das Programmieren Das erste Programm
Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Betriebssystem Funktion Anwendung Gerätesteuerung
MehrEinführung in Swift. Kapitel. In diesem Kapitel. Für Swift legt Apple verschiedene Ziele fest:
D3kjd3Di38lk323nnm Einführung in Swift Kapitel 1 In diesem Kapitel 1.1 Grundlagen der Syntax 1.2 Grundlegende Datentypen Übungen Swift ist eine neue Programmiersprache, die von Apple entwickelt und Entwicklern
MehrSS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010
SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4 R. C. Ladiges, D. Fast 10. Juni 2010 Inhaltsverzeichnis 4 Aufgabe 4 3 4.1 Sich mit dem Programmpaket vertraut machen.................... 3 4.1.1 Aufgabenstellung.................................
MehrClassical Themes of Computer Science UE WS 2017/18 Aufgabenblatt Thema: Functional Programming
Classical Themes of Computer Science UE WS 2017/18 Aufgabenblatt Thema: Functional Programming Dr. Bernhard Aichernig Andrea Pferscher TU Graz, Institut für Softwaretechnologie Ausgabe: 29.11.2017 Fragestunde:
MehrBuild Management Tool?
Build Management Tool? Funktionen Dependency Management Kompiliert den Sourcecode in Binaries Führt automatisierte Tests aus Installiert Software oder Lädt sie in Repositories Erstellt eine Dokumentation
MehrWS 2011/2012. Robert Giegerich Dezember 2013
WS 2011/2012 Robert 1 AG Praktische Informatik 11. Dezember 2013 1 robert@techfak.uni-bielefeld.de Vorschau Themen heute: Funktionen höherer Ordnung (Fortsetzung) künstliche Striktheit mehr zu fold für
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
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
MehrBuild Management Tool
Build Management Tool Build-Prozess? Source Code 3rd Party libraries Veröffentlichung Download all 3rd Party libs by hand Compile your sources: javac -sourcepath./src1;./src2 Byte Code -cp lib1.jar;lib2.jar
MehrDie Klasse MiniJava ist in der Datei MiniJava.java definiert:
Die Klasse MiniJava ist in der Datei MiniJava.java definiert: import javax.swing.joptionpane; import javax.swing.jframe; public class MiniJava { public static int read () { JFrame f = new JFrame (); String
MehrVU Qualitätssicherung in der Softwareentwicklung LV-Nr , SS Aufgabenblatt 1
VU Qualitätssicherung in der Softwareentwicklung LV-Nr. 716.066, SS 2011 Aufgabenblatt 1 Ass.-Prof. Dr. Bernhard Aichernig Sandra Fruhmann, sandra.fruhmann@student.tugraz.at Stefan Tiran, stiran@ist.tugraz.at
MehrVorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 4 Besprechung: 19. 23.11.2018 (KW 47) Vorbereitende
MehrProgrammierung WS 2002 / 03: Musterlösung zum 12. Übungsblatt
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 = 2 + 2 +
MehrInstallationsanleitung
1. C Installationsanleitung C-Programmierung mit Hilfe von Eclipse unter Windows XP mit dem GNU C-Compiler (GCC) 2. Inhaltsverzeichnis 1. Einleitung... 3 2. Cygwin... 3 2.1 Cygwin-Installation... 3 2.2
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrVU Software Paradigmen / SS 2008
VU Software Paradigmen 716.060 / SS 2008 Stephan Gspandl Institut für Softwaretechnologie sgspandl@ist.tugraz.at Institute for Software Technology Lehrziele Vermittlung von einführenden Kenntnissen des
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden
MehrAlgorithmen und Datenstrukturen I. Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen I Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 20:05 Aufgabe 1 struct, Parameterübergabe und const Das Repository für diese
MehrKurzanleitung Projektverwaltung
Kurzanleitung Projektverwaltung Inhalt 2 Inhalt Dendrit STUDIO starten... 3 Dendrit STUDIO unter Windows Vista/Windows 7 starten... 3 Dendrit STUDIO unter Windows 8/Windows 10 starten... 3 Projektverwaltung...
MehrÜbersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
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
Mehr3 Syntax von Programmiersprachen
3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme
MehrC++ 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
MehrVU Qualitätssicherung in der Softwareentwicklung LV-Nr , SS Aufgabenblatt 3
VU Qualitätssicherung in der Softwareentwicklung LV-Nr. 716.066, SS 2017 Aufgabenblatt 3 ao. Univ.-Prof. Dr. Bernhard Aichernig Andrea Pferscher, andrea.pferscher@student.tugraz.at Christoph Rehbichler,
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
MehrInstallations- und Updateanleitung LTLexTool
Inhalt 1. Allgemeines... 2 2. Sicherung vor dem Update... 2 3. Download... 2 4. Installation/Update auf dem Lexwareserver... 3 5. Aktivierung des LTLexTools... 4 6. Installation der Clients... 5 Copyright
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
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
MehrEinführung in die Programmierung für Computerlinguisten
EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN Dr. Maximilian Hadersbeck Leonie Weißweiler LMU Geschwister-Scholl-Platz 1 80539 München Anrede Name Straße Lösung zur 3. Übung zur Vorlesung Ludwig-Maximilians-Universität
MehrInhalt. Kurzanleitung zum Arbeiten mit TU-GitLab
Kurzanleitung zum Arbeiten mit TU-GitLab Inhalt 1 Nutzungsberechtigte... 2 2 Client Software... 2 3 Bedingung für erfolgreiches Anmelden in GitLab an der RWTH Aachen... 2 4 Erstanmeldung in GitLab an der
MehrProgrammierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold s.berktold@tum.de PRÄSENZAUFGABEN Heutige Übersicht
MehrInterpreter (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
MehrOptimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation
Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation http://pp.info.uni-karlsruhe.de/lehre/ss2011/tba/ LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT SS Universität 2011 desdenis
MehrRefactoring Transformationen. Martin Freund Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn
Refactoring Transformationen Martin Freund bbl@upb.de Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn Gliederung 1. Transformationen-Übersicht 2. Beispiel: Methode
MehrVorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 4 Besprechung: 13. 17.11.2017 (KW 46) Vorbereitende
MehrStruktur des MicroJava-Compilers
Struktur des MicroJava-Compilers Compiler Parser.mj Scanner Code- Generator.obj Symboltabelle UE zu Übersetzerbau Lexikalische Analyse 1 Grammatik ohne Scanner Expr = Term { "+" Term }. Term = Factor {
MehrDie Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
Die Scala Entwicklungsumgebung 1 Was ist drin? Die Scala-Entwicklungsumgebung enthält Die Scala-Shell: scala Zwei Compiler: scalac und fsc (Fast Scala Compiler) Die API Die Laufzeitumgebung Den Scala-Basar
MehrPraktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2
MehrBuild Management Tool?
Build Management Tool? Funktionen Dependency Management Kompiliert den Sourcecode in Binaries Führt automatisierte Tests aus Installiert Software oder Lädt sie in Repositories Erstellt eine Dokumentation
MehrVorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrLösungshinweise/-vorschläge zum Übungsblatt 9: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 9: Software-Entwicklung 1 (WS 2017/18)
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
MehrCompiler. Blatt 1. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:
Compiler Blatt 1 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 27.04.2017 09:44 Dieses Blatt ist ein Tutorial an dem Sie sich selbst entlang hangeln sollen. Wenden Sie sich
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrPython Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14
Python Intro I Vorsemesterkurs Informatik Praktischer Teil WS 2013/14 1.Oktober 2013 Let's get started } Skript, Übungen, Folien... Alles zum Praxisteil auf http://vorkurs.cs.unifrankfurt.de Bücher: Fragen!
MehrMultimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011
Übung zur Vorlesung Multimedia im Netz Ludwig-Maximilians-Universität Wintersemester 2010/2011 Ludwig-Maximilians-Universität München Multimedia im Netz - Übung - 1-1 Organisatorisches Informationen zur
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 1. Oktober, 2015 Plan für heute 1. Nachbesprechung Übung 2 2. Vorbesprechung Übung 3 3. Zusammenfassung der für Übung 3 wichtigen Vorlesungsslides Informatik 1 (D-BAUG) Giuseppe Accaputo
Mehrhue10 January 15, 2017
hue10 January 15, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 3 Besprechung: 12. 16.11.2018 (KW 46) Vorbereitende
MehrSprachdialogsysteme Arbeitsblatt inge - ines Grammatik Editor
Aufgabe 1) Ausprobieren eines Sprachdialoges mit natürlich gesprochener Sprache Starte ines und öffne die Datei flugbuchung.ines. Sie befindet sich im Verzeichnis C:\Programme\inES\Aufgaben\inGE\Deutsch.
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrProf. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353)
Prof. Dr. Uwe Schmidt 17. August 2010 Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre
MehrAbend 4 Übung : Erweitern von Klassen durch Vererbung
Abend 4 Übung : Erweitern von Klassen durch Vererbung Ziel, Inhalt Wir erweitern die Klassen, die wir zum Zeichnen mit TsuZeichnen verwenden. Dabei wenden wir die Vererbung an um die Klassen zu spezialisieren
MehrPuppet. Modul Guide. Alexander Pacnik Karlsruhe,
Puppet Modul Guide Alexander Pacnik Karlsruhe, 23.08.2013 Environment Struktur... worum es in diesem Vortrag geht. Environment-Struktur Repository-Struktur Modulprinzipien Modulestruktur Daten & Code Test
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrScala. Funktionale (Zustandslose) Objekte
Scala Funktionale (Zustandslose) Objekte Agenda Was sind Funktionale Objekte? veränderliche Objekte vs. unveränderliche Objekte Klassen Parameter Konstruktoren Private Member Methoden und Operatoren Overriding
Mehr1 List comprehensions
Hier soll gezeigt werden, wie Domain specific languages (DSL) in Common Lisp implementiert werden können. Dies kann auch als eine andere Art der Programmierung aufgefasst werden. Anstatt ein Problem soweit
MehrProgrammieren/Algorithmen und Datenstrukturen 1
Hochschule Darmstadt FB Informatik Prof. Dr. R.Nitsch Programmieren/Algorithmen und Datenstrukturen 1 Praktikum 1 Lernziele Mit der Entwicklungsumgebung einfache Konsolenanwendungen erstellen und debuggen
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
MehrEin erstes "Hello world!" Programm
OOP Henrik Horstmann 14. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Die Benutzer Oberfläche von HOOPLU...2 2.1 Projekte öffnen und speichern...2 2.2 Die Klasse Program
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
MehrRückgabewerte von Methoden
OOP Rückgabewerte von Methoden Henrik Horstmann 14. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Rückgabewerte von Methoden...2 3 Der freundliche Computer...2 3.1
Mehr1. Probeklausur zur Programmierung I
DEPENDABLE SYSTEMS AND SOFTWARE Fachrichtung 6.2 Informatik Tutoren der Vorlesung 1. Probeklausur zur Programmierung I Name: Matrikelnummer: Bitte öffnen Sie das Klausurheft erst dann, wenn Sie dazu aufgefordert
Mehrhue05 November 25, 2016
hue05 November 25, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrKorn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung 2. Die Kornshell im Detail 3.Grundlagen der Programmierung
1. Übersicht: Einführung 2. Die Kornshell im Detail 3.Grundlagen der Programmierung 1. Übersicht und Einführung 1.1 Die Shell allgemein 1.2 Die korn-shell 1.3 Der Weg zum ersten Skript 1.4 Nutzen und Grenzen
MehrAlgorithmen & Datenstrukturen 2 Praktikum 1
Algorithmen & Datenstrukturen 2 Praktikum 1 Thema: Binomial Heaps Sommersemester 2016 Prof. Dr. Christoph Karg Hochschule Aalen Ziel dieses Praktikums ist es, die Binomial Heap Datenstruktur in Form einer
MehrAufgabenblatt 11 Musterlösung
Programmierkurs Aufgabenblatt 11 Dr. Ole Klein, Dr. Steffen Müthing Abgabe 09. Februar 2018 IWR, Universität Heidelberg ipk-exercises:2017-ws-89-g0001213 Hinweise zur Klausur: Aufgabenblatt 11 Die Klausur
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
Mehr