VU Software Paradigmen / SS 2010

Ähnliche Dokumente
VU Software Paradigmen / SS 2014

VU Software Paradigmen

VU Software Paradigmen / SS 2008

VU Software Paradigmen / SS 2012

Vorlesung Programmierung

I.1. Organisatorisches - 1 -

Vorlesung Programmierung

Mathematik: Ausbildung im ersten Semester

SWP Funktionale Programme

Vorlesung Programmierung

Grundlagen der Programmiersprachen

Vorlesung Programmierung

Grundlagen der Programmierung 2

Grundlagen der Programmierung 2

SWP Funktionale Programme (3. Teil)

Algorithmen und Berechnungskomplexität I

Vorlesung Programmierung

Datenmodellierung VU Vorbesprechung SS 2016

Compilerbau (1 KU) SS 2011

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Berechenbarkeit und Komplexität Vorlesung 11

Mathematik: Ausbildung im zweiten Semester

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -

Personen. Grundlagen der Programmierung 2. Webseite und . Vorlesung

PI.TGS.TS: Technische Grundlagen und Systemsoftware

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

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

Vorsemesterkurs Informatik

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

Übung Algorithmen und Datenstrukturen

Vorsemesterkurs Informatik

Pascal Nasahl Gruppe 3 Tutorium 1

Logik und diskrete Strukturen

Vorsemesterkurs Informatik

Programmier-Projekt (cs108)

Allgemeine Informatik 1

2.2 Syntax, Semantik und Simulation

Lösungshinweise/-vorschläge zum Übungsblatt 2: Grundlagen der Programmierung (WS 2018/19)

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

/ VU Daten- und Informatikrecht Lehrveranstaltungsmodalitäten / Vorbesprechung

Objektorientierte Programmiertechniken

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

Logik für Informatiker

Konzepte von Programmiersprachen

Syntax von Programmiersprachen

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Informationsveranstaltung für StudienanfängerInnen im Bachelorstudium Mathematik

Datenbanksysteme Vorlesung mit Übung (VU 4.0)

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -

Multiparadigmen- Programmiersprachen

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Abschnitt 11: Korrektheit von imperativen Programmen

n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -

Datenmodellierung VU Vorbesprechung SS 2015

Propädeutikum Programmiersprache C und Mathematik 2014

Semantik von Programmiersprachen SS 2017

Übung Algorithmen und Datenstrukturen

Informationsveranstaltung BWL B

Logik für Informatiker

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

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

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Prolog. Dozentin: Wiebke Petersen. Organisatorisches. Petersen Prolog: Organisatorisches 1

Ein Fragment von Pascal

Datenbanksysteme Vorlesung mit Laborübung (VL 4.0)

4.4 Imperative Algorithmen Prozeduren

7. Syntax: Grammatiken, EBNF

Übung Algorithmen und Datenstrukturen

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

VU Software Paradigmen / SS 2015

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

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

Informationsveranstaltung für StudienanfängerInnen im Unterrichtsfach Mathematik

Kapitel 6. Programme mit Schleifen. Wir betrachten jetzt eine einfache imperative Programmiersprache IMP. IMP verfügt

LOOP-Programme: Syntaktische Komponenten

Informationsveranstaltung BWL B

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

Algorithmen und Datenstrukturen

Ein Induktionsbeweis über Schuhgrößen

Die Programmiersprache C Eine Einführung

Praktikum Funktionale Programmierung Organisation und Überblick

Interpreter - Gliederung

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Logische Programmierung

Prüfungsvorbereitung SWP

Einführung Praktische Informatik

Grundlagen der Programmierung UE. Dr. Herbert Prähofer (Gruppe 1 2, & 3) DI Markus Weninger(Gruppe 4)

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Programmiersprachen Proseminar

Entwurf und Analyse von Algorithmen

Tilman Bauer. 4. September 2007

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14

III.1 Prinzipien der funktionalen Programmierung - 1 -

Transkript:

VU Software Paradigmen 716.060 / SS 2010 Stephan Gspandl Institut für Softwaretechnologie sgspandl@ist.tugraz.at Institute for Software Technology

Lehrziele Vermittlung von einführenden Kenntnissen des Compilerbaus (Analyse der Programmsyntax) und der Ausführungskonzepte von Programmiersprachen (Semantik). Schreiben und Verstehen von einfachen Compiler Verstehen von Sprachsemantiken und deren Unterschiede Institute for Software Technology 2

Inhalt Organisatorisches Aufbau der LVA Benotung Ziele und Inhalt Institute for Software Technology 3

Organisatorisches VU (3 Wochenstunden) Vorlesungsteil (2 Wochenstunden) Jeweils Dienstag, 9:30-11:00, HS I12 Prüfungstermin: 29.6.2010 Nachklausur: Ende September 2010 Übungsteil (1 Wochenstunde) LV mit immanenten Prüfungscharakter Institute for Software Technology 4

Termine DI, 2.3 12:00-13:30 HS I12 / s.t. DI, 9.3. 9:30-11:00 HS I12 / s.t. DI, 16.3. 9:30-11:00 HS I12 / s.t. DI, 23.3. 9:30-11:00 HS I12 / s.t. DI, 20.4. 9:30-11:00 HS I12 / s.t. DI, 27.4. 9:30-11:00 HS I12 / s.t. DI, 4.5. 9:30-11:00 HS I12 / s.t. DI, 18.5. 9:30-11:00 HS I12 / s.t. DI, 1.6. 9:30-11:00 HS I12 / s.t. DI, 8.6. 9:30-11:00 HS I12 / s.t. DI, 15.6. 9:30-11:00 HS I12 / s.t. DI, 22.6. 9:30-11:00 HS I12 / s.t. DI, 29.6. 8:00-12:00 Prüfung Institute for Software Technology 5

Übung Übungsgruppen (siehe TUGonline) Ummeldung bis Mo, 8.3. Übungsaufgaben (5 Abgaben): 22.3., 26.4., 10.5., 7.6. (!) und 14.6. Abgabe im IST-Sekretariat bis spätestens 12 Uhr Anwesenheitspflicht in der jeweiligen Woche, in der der Abgabetermin liegt Benotet werden: Anzahl der gelösten Beispiele Präsentation der Lösungen Programmierbeispiel 2 Abgabetermine (19.4. und 21.6., 12 Uhr, per E-Mail) Institute for Software Technology 6

Tutoriumstermine Voraussichtlich: Montag, 15-16 Uhr, 16-17 und 17-18 Uhr Dienstag, 14-15 Uhr und 15-16 Uhr Mittwoch, 11-12 Uhr, 12-13 Uhr Donnerstag, 18-19 Uhr Freitag, 9-10 Uhr und 10-11 Uhr Wo? Seminarraum IST und CityTower Institute for Software Technology 7

Programmierbeispiele Gruppenarbeit zu 4 Studierenden 2 Aufgaben Anwendungsgebiet: RoboCup Simulation League 2D Framework KickOffTUG (Java) wird auf der Homepage bereitgestellt Institute for Software Technology 8

Programmierbeispiele Aufgabe 1: Parser für visuelle Nachrichten Aufgabe 2: planbasierte Entscheidungsfindung logische Verhaltensmodellierung von Tormann Stürmer Einführung in LV und Tutorien Turnier am Ende des Semesters Abgabe von Source und Dokumentation Institute for Software Technology 9

RSL-Umgebung Schwerpunkt auf KI keine Hardware Realitätsgetreuste Liga Korrekte Proportionen FIFA-Reglement Komponenten 11 autonome Spieler (Agenten) verbinden sich zu virtuellem Stadion (SoccerServer) visualisiert in 2d (Monitor) Zusammenspiel der Komponenten Institute for Software Technology

Spielfeld Situation + verstrichene Zeit (460 of 6000) linkesteam (yellow) Tore Team Red BALL Goalie Spieler Team Red Abb. 2: Eine Spielszene der 2D Simulationsliga Institute for Software Technology

Prinzipien des Spiels beruht auf Kommunikation zwischen Spieler und SoccerServer Ein Agent bekommt Input dreier fiktiver Sensoren: erstellt daraus seine absolute Sicht der Dinge SEE HEAR - Player - Referee - Coach Sense Schluß auf das bestmögliche Kommando innerhalb des Zeitfensters von 100 ms. kann eine Reihe primitiver Kommandos ausführen Institute for Software Technology

Benotung Noten setzt sich zusammen aus: Anzahl der gelösten Aufgaben und deren Bewertung (20 %) Programmierbeispiel (20 %) Schriftliche Prüfung am 23.6., x Uhr, HS x (60 %) Positive Note bei >50 % Institute for Software Technology 13

START Anmeldung UE-Teilnahme Endklausur Positiv JA Positives Zeugnis NEIN JA Nachtermin Endklausur Positiv Abmeldung NEIN JA Kein Zeugnis Negatives Zeugnis Institute for Software Technology 14

Bei Fragen.. Vor der VO Sprechstunde Mo 10-11 Uhr nach Vereinbarung [ E-Mail: sgspandl@ist.tugraz.at ] [ Telephon: DW 5475 ] Institute for Software Technology 15

Unterlagen Lehrveranstaltungsverlauf unter http://www.ist.tugraz.at/swp10.html Folien Skriptum Übungsangaben SWP Newsgroup @ TUG tu-graz.lv.swp Buchempfehlungen Institute for Software Technology 16

Ziele der LVA Sprachdefinition Syntax Semantik von Programmiersprachen Konzepte von Programmiersprachen Auswertung von Programmen Struktur von Programmen Entscheidungsprobleme Institute for Software Technology 17

Grober Ablauf (I) Syntax BNF Sprachhierarchie Prinzipien Institute for Software Technology 18

Grober Ablauf (II) Semantik Funktionale Sprachen Imperative Sprachen Logikorientierte Sprachen OO Sprachen Institute for Software Technology 19

Grober Ablauf (III) Entscheidungsprobleme Halteproblem Äquivalenzproblem Institute for Software Technology 20

Grober Ablauf (IV) Prog.sprachenkonzepte Modules Libraries Components Aspects,... Institute for Software Technology 21

Institute for Software Technology Überblick

Klassifikation von Sprachen Syntaktische Kriterien / Grammatik Wie wird ein Programm strukturiert? Ist die Sprache einfach zu lernen? Unterstützt eine Sprache, die Programmierung großer SW-Systeme?... Semantische Kriterien Auswertung von Programmen Institute for Software Technology 23

Semantik? Bedeutung (der Konstrukte) einer Sprache Die Bank von Peter. Sitzbank Geldinstitut Institute for Software Technology 24

Bedeutung von Programmen fun test (x,y) = if x=0 then 0 else y + test(x-1,y); Was berechnet das obige SML- Programm? Institute for Software Technology 25

Vergleich mit math. Definition x * y = y + (( x 0 if 1)* ( x y) = 0) otherwise (Induktive) Definition der Multiplikation test implementiert die Multiplikation! Institute for Software Technology 26

Logik-orientierte Programme Prädikate vater(x,y)... X ist der Vater von Y Regeln can_fly(x) :- bird(x). Anfragen can_fly(papagei). Institute for Software Technology 27

Prolog-Programmbeispiel Formalisieren Sie mit Hilfe von vater das Prädikat grossvater(x,y), das wahr ist, wenn X der Großvater von Y ist. Institute for Software Technology 28

Prolog-Programmbeispiel Formalisieren Sie mit Hilfe von vater das Prädikat grossvater(x,y), das wahr ist, wenn X der Großvater von Y ist. X ist der Großvater von Y wenn X der Vater von Z ist und Z der Vater von Y. Institute for Software Technology 29

Prolog-Programmbeispiel grossvater(x,y) :- vater(x,z), vater(z,y). X ist der Großvater von Y wenn X der Vater von Z ist und Z der Vater von Y. Institute for Software Technology 30

Anfragen vater(franz,karl). vater(karl,otto). grossvater(franz,otto)? Anfrage grossvater(franz,otto) muß Ja (True/Yes) liefern. Institute for Software Technology 31

Semantik von Imperativen Sprachen? void change(int x,y) { } int z = x; x = y; y = z; Definition über die Interpretation der einzelnen Statements. Die Statements führen dabei zu Zustandsänderung des Programms. Institute for Software Technology 32

Semantik von Imperativen Sprachen? void change(int x,y) { } int z = x; x = y; y = z; Was passiert hier bei Auswertung der einzelnen Statements? Institute for Software Technology 33

Semantikfunktion Interpretation eines Statements s [[s]]: env env Environment: env: VAR D env(x) D wobei x eine Variable ist und D der Wertebereich (Domain) von x ist. Institute for Software Technology 34

Beispiel [[x = e]] (Θ) = Θ mit Θ (y) = Θ(y) für alle y x Θ (x) = [[e]] (Θ) [[x]] (Θ) = Θ(x) für x VAR {Θ(x)=1, Θ(y)=2} z = x; {Θ(x)=1, Θ(y)=2, Θ(z)=1} x = y; {Θ(x)=2, Θ(y)=2, Θ(z)=1} y = z; {Θ(x)=2, Θ(y)=1, Θ(z)=1} Institute for Software Technology 35

Entscheidungsprobleme Gegeben: Frage Antwort: Ja oder Nein Halteproblem: Gibt es ein Programm, daß für beliebige Programme entscheiden kann, ob diese für alle Eingaben halten? Äquivalenzproblem: Gibt es ein Programm, daß die Äquivalenz zweier beliebiger Programme feststellen kann? Institute for Software Technology 36

Programmiersprachen / Wieso? Problemstellung Verteilung Teilprobleme Teillösungen Institute for Software Technology 37

Erstellung großer Software Problemstellung für Einzelne zu groß Teamarbeit Aufteilung in Teile, die getrennt gelöst werden können Zusammenführen der Einzellösungen zur Lösung des Gesamtproblems Unterstützung in der Programmiersprache? Institute for Software Technology 38