logo of the SSW institute
Institut für Systemsoftware
Johannes Kepler Universität Linz
Fachbereich Informatik
logo of the Cristian Doppler Research Association
Christian Doppler Labor
Monitoring and Evolution of Very-Large-Scale Software Systems

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad

Misc
Library
Seminars
Gallery
Links
Search

Webmaster


logo of the Johannes Kepler University (JKU)

Prinzipien von Programmiersprachen

339.003 3KV Blaschek, Mössenböck, Prähofer Do 15:30-18:00 Beginn: 4.10.2012


Diese Lehrveranstaltung vermittelt ein breites Verständnis für Programmiersprachenparadigmen und -konzepte, insbesondere solche, die über Java hinausgehen. Diese Konzepte werden an Hand ihrer Geschichte, ihrer Realisierungsalternativen in diversen Sprachen, der damit verbundenen Designüberlegungen, sowie ihrer Vor- und Nachteile diskutiert. Ein weiteres Ziel ist das Kennenlernen ausgewählter Programmiersprachen.

Inhalt

  1. Überblick (Mössenböck)
    - Klassifikation von Programmiersprachen
    - Stammbaum heutiger Sprachen
  2. Imperative Sprachen (Mössenböck)
    - Historische Meilensteine
    - Scopes
    - Datentypen
    - Anweisungen
    - Unterprogramme
    - Modularisierung und Datenabstraktion
    - Parallelität
    - Ausnahmebehandlung
    - Kontrakte in Eiffel
  3. Objektorientierte Sprachen (Blaschek)
    - Begriffe
    - Mechanismen
    - Typisierung
    - Reine objektorientierte Sprachen
    - Blöcke
    - Ko- und Kontravarianz
    - Generizität
    - Mehrfache Vererbung
    - Prototypen
  4. Funktionale Sprachen (Prähofer)
    - Grundlagen
    - LISP und Scheme
    - rein funktionale Sprachen (Haskell)
    - XLinq und DLinq in C# 3.0, JavaFX
  5. Logische Sprachen (Prähofer)
    - Logische Grundlagen
    - Unifikation
    - Prolog
    - Anwendungen

Termine

Termine Inhalt
04.10.2012
11.10.2012
18.10.2012
Überblick
Imperative Sprachen
25.10.2012
08.11.2012
15.11.2012
Objektorientierte Sprachen
29.11.2012
06.12.2012
13.12.2012
10.01.2013
Funktionale Sprachen
Logische Sprachen
24.01.2013 Klausur

Skript

Das Skript kann von der Kusss-Webseite dieser LVA in PDF-Form heruntergeladen werden:
- Teil 1: Klassische imperative Sprachen
- Teil 2: Objektorientierte Sprachen
- Teil 3: Funktionale und Logische Sprachen

Prüfung

Die Prüfung findet in Form einer schriftlichen Klausur statt. Zum positiven Abschluss dieser LVA ist auch der Übungsteil zu absolvieren.

Übungen

Die Übungen bestehen aus drei Teilen, in denen jeweils ein Projekt zu bearbeiten und am Ende des Semesters beim betreffenden LVA-Leiter abzugeben ist.

Angaben zu den Übungen funktionale Programmiersprachen folgen in Kürze.

Abgabe: Kommen Sie bitte mit Ihrem Notebook zu den angegebenen Zeiten zu den LVA-Leitern und präsentieren Sie Ihre Projekte. Um Wartezeiten zu vermeiden, sind die Abgabezeiten vorgegeben bzw. nach dem Anfangsbuchstaben Ihres Namens gegliedert.

Mi/Do 16./17.1.2013
Objektorientierte Sprachensiehe Tabelle auf der Übungsseite
Fr 25.1.2013 10-11 11-1213-14 14-15
Imperative Sprachen
Abgabe bei Mössenböck oder Löberbauer
A - H I - L M - R S - Z
Funktionale Sprachen
Abgabe bei Prähofer oder Schatz
- - A - L M - Z

Literatur

Bücher

Allgemeines
  • Sebesta, R.W.: Concepts of Programming Languages. 7th ed., Addison-Wesley 2006
  • Maclennan B.J.: Principles of Programming Languages. Oxford University Press, 1999
  • Henning, P.A., Vogelsang H. (Hrsg.): Handbuch Programmiersprachen. Hanser 2007
Geschichte Scheme und Common Lisp
  • Harold Abelson, Gerald Jay Sussman: Structure and Interpretation of Computer Programs. 2nd Edition, MIT Press, 1996
  • M. Eisenberg: Programming in Scheme. MIT Press, 1988
  • R. Kent Dybvig: The Scheme Programming Language. 3rd Edition, MIT Press, 2003
  • Patrick H. Winston und Berthold K. Horn: LISP. Addison-Wesley, 1989
  • Peter Norvig: Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP. Morgan Kaufmann, 2001
  • Sonya Keene: Object-Oriented Programming in Common LISP: A Programmer's Guide to Clos. Addison-Wesley, 1989
  • Gregor Kiczales: The Art of the Meta-object Protocol. MIT Press, 1991
Funktionale Programmierung
  • Simon Thompson: Haskell: The Craft of Functional Programming. Second Edition, Addison-Wesley, 1999
  • Richard Bird: Introduction to Functional Programming using Haskell. 2nd edition, Prentice Hall Press, 1998
  • Graham Hutton: Programming in Haskell. Paperback: 200 pages, Cambridge University Press
  • Paul Hudak: The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, New York, 2000
  • Bryan O'Sullivan, Don Stewart, and John Goerzen: Real World Haskell. O'Reilly Media, 2008.
  • Don Syme, Adam Granicz, Antonio Cisternino: Expert F#. Apress, Berkeley, 2007
Prolog
  • William F. Clocksin and Christopher S. Mellish: Programming in Prolog, 4th Edition, Springer-Verlag, 2003.
Spezielle Sprachen
  • Meyer, B.: Eiffel - The Language. Prentice Hall 1992
  • Barnes J.G.P.: Programming in Ada 95. Addison-Wesley 1998
  • Wheeler, D.A.: Ada 95 - The Lovelace Tutorial. Springer-Verlag 1997
  • Goldberg A., Robson D.: Smalltalk-80: The Language and Its Implementation, Addison-Wesley 1983
  • Cox B, Novobilski A.: Object-Oriented Programming: An Evolutionary Approach (beschreibt Objective C). Addison-Wesley 1991
  • Stroustrup, B.: The C++ Programming Language. 3rd edition, Addison Wesley 2000
  • Strasser, T.: C++ - Programmieren mit Stil. dpunkt.verlag 2003
  • Hejlsberg, A., Wiltamuth, S., Golde, P.: The C# Programming Language. Addison-Wesley 2004
  • Mössenböck, H.: Softwareentwicklung mit C# 2.0. dpunkt.verlag 2006

Online-Quellen