GPS-0-1 Grundlagen der Programmiersprachen Prof. Dr. Uwe Kastens Sommersemester 2016 (c) 2016 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 001 Ziele: Anfang in der Vorlesung: Begrüßung -------------------------------------------------------------------------------- GPS-0-2 Ziele Die Vorlesung soll Studierende dazu befähigen, * die Grundkonzepte von Programmier- oder Anwendungssprachen zu verstehen, * Sprachdefinitionen zu verstehen, * neue Programmiersprachen und deren Anwendung selbständig erlernen zu können (dies wird an der Sprache C in der Vorlesung erprobt) * typische Eigenschaften nicht-imperativer Programmiersprachen zu verstehen. * Freude am Umgang mit Sprachen haben. (c) 2014 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 002 Ziele: Ziele der Vorlesung in der Vorlesung: Ziele und Schwerpunkte Verständnisfragen: Stimmen die Ziele mit Ihrer Vorstellung von der Vorlesung überein? -------------------------------------------------------------------------------- GPS-0-3 Inhalt Vorlesung Thema Kapitel im Buch Sebesta Mitchell 1, 2 Einführung 1 1, 4 3, 4 Definition Syntaktischer Strukturen 3 4 5 Gültigkeit von Definitionen, 4.4, 4.8 7.1 6 Lebensdauer von Variablen 4.9 7.2, 7.3 Laufzeitkeller 7, 8 Datentypen 4.5, 5 6 9 Aufruf, Parameterübergabe 8 10, 11, 12 Funktionale Programmierung: 14 3, 7.4 Grundbegriffe, Rekursionsparadigmen, Funktionen höherer Ordnung 13, 14 Logische Programmierung: 15 15 Grundlagen, Auswertung logischer Programme Zusammenfassung (c) 2013 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 003 Ziele: Übersicht über die Vorlesungsthemen in der Vorlesung: Ziele und Schwerpunkte -------------------------------------------------------------------------------- GPS-0-4 Bezüge zu anderen Vorlesungen In GPS verwendete Kenntnisse aus * Grundlagen der Programmierung 1, 2: Eigenschaften von Programmiersprachen im allgemeinen * Modellierung: reguläre Ausdrücke, kontext-freie Grammatiken, abstrakte Definition von Wertemengen, Terme, Unifikation Kenntnisse aus GPS werden benötigt z. B. für * weiterführende Veranstaltungen im Bereich Programmiersprachen und Übersetzer: Verständnis für Sprachkonzepte und -konstrukte 5. Sem: PLaC; Master: noch offen * Software-Technik: Verständnis von Spezifikationssprachen * Wissensbasierte Systeme: logische Programmierung, Prolog * alle Veranstaltungen, die Programmier-, Spezifikations- oder Spezialsprachen verwenden: Grundverständnis für Sprachkonzepte und Sprachdefinitionen, z. B. VHDL in GTI/GRA; SQL in Datenbanken (c) 2015 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 004 Ziele: Verzahnung mit anderen Veranstaltungen bewusst machen in der Vorlesung: Beispiele dazu nachlesen: Sammlung der Inhaltsbeschreibungen zu Vorlesungen des Informatikstudiums -------------------------------------------------------------------------------- GPS-0-5 GPS-Literatur Zur Vorlesung insgesamt: * elektronisches Skript GPS: http://ag-kastens.upb.de/lehre/material/gps * R. W. Sebesta: Concepts of Programming Languages, 9th Ed., Pearson, 2010 * John C. Mitchell: Concepts in Programming Languages, Cambridge University Press, 2003 Zu Funktionaler Programmierung: * L. C. Paulson: ML for the Working Programmer, 2nd ed., Cambridge University Press, 1996 Zu Logischer Programmierung: * W.F. Clocksin and C.S. Mellish: Programming in Prolog , 5th ed. Springer, 2003 C, C++, Java: * Carsten Vogt: C für Java-Programmierer, Hanser, 2007 * S.P. Harbison, G.L. Steele: C: A - Reference Manual (5th ed.), Prentice Hall, 2002 * Timothy Budd: C++ for Java Programmers, Pearson, 1999. * K. Arnold, J. Gosling: The Java Programming Language, 4th Edition, Addison-Wesley, 2005 * J. Gosling, B. Joy, G. L. Steele, G. Bracha, A. Buckley: The Java Language Specification, Java SE 8 Edition, Oracle, 2014 (c) 2016 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 005 Ziele: Einige wichtige Bücher zur Vorlesung kennenlernen. in der Vorlesung: Hinweise zur Verwendung der Bücher: * [Sebesta]: passt gut zur Vorlesung * [Mitchell]: Sehr gute Übersicht, tiefer und breiter als der Stoff in GPS; auch noch für PLaC geeignet * [Paulson]: Praxis der funktionalen Programmierung, tiefer als GPS * [Clocksin, Mellish]: Prolog: Sprache und einfache Beispiele * [Vogt]: leichter Einstieg nach C * [Harbison, Steele]: Referenz für C, inkl. Standard * [Budd]: Umstieg nach C++ * [Arnold, Gosling]: Java bescrieben vom Java-Autor (Rationale) * [Bracha, et.al.]: Java Referenz, tief gehend -------------------------------------------------------------------------------- GPS-0-6 Organisation: Das GPS-Skript im WWW http://ag-kastens.upb.de/lehre/material/gps (c) 2016 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 006 Ziele: in der Vorlesung: Erläuterungen des Vorlesungsmaterials im Web Übungsaufgaben: Alle wichtigen Infos gibts auf diesen Seiten. Öfter mal reinschauen! Verständnisfragen: * Schon gesehen? -------------------------------------------------------------------------------- GPS-0-7 Erläuterte Folien im Skript (c) 2016 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 007 Ziele: in der Vorlesung: Erläuterungen des Vorlesungsmaterials im Web Übungsaufgaben: Alle wichtigen Infos gibts auf diesen Seiten. Öfter mal reinschauen! Verständnisfragen: * Schon gesehen? -------------------------------------------------------------------------------- GPS-0-8 Organisation im Sommersemester 2016 Termine Vorlesung Die 14:15 - 15:45 L1, Uwe Kastens Mi 14:15 - 15:45 L1, Uwe Kastens Beginn: Mi. 01.06. Zentralübung Mi 13:15 - 14:00 L1, Uwe Kastens Beginn: Mi 15. 6. Übungen Beginn: Mo 06.06. Übungsbetreuer Dr. Peter Pfahler Clemens Boos Felix Barczewicz Marius Meyer Aaron Nickl Patrick Steffens Jonas Klauke Übungstermine siehe Organisationsseite des Vorlesungsmaterials im Web gemäß Anmeldung in PAUL Hausaufgaben erscheinen wöchentlich (bis Die.), Bearbeitung in Gruppenarbeit (2-4), Abgabe bis Die 14:15 Uhr; Lösungen werden korrigiert und bewertet. 1 Test wird während einer Zentralübung durchgeführt (Termine im Web), können bestandene Klausur um 1 - 2 Notenschritte verbessern. Klausur voraussichtliche Termine: 26.07. und 23.09 Anmeldung in PAUL / ZPS (c) 2016 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Grundlagen der Programmiersprachen SS 2016 / Folie 008 Ziele: Organisation im aktuellen Semester in der Vorlesung: Termine, Betreuer, Übungen, Tests, Klausuren Verständnisfragen: * Gibt's noch Fragen zur Organisation? * Wo bekommt man die Antworten? --------------------------------------------------------------------------------