Proseminar Geschichte der Programmiersprachen

Grundstudium Informatik
SS 2006
Termin: Do, 14-16, Andreas Abel
Schein: ja
SWS: 2


Achtung! Mangels Teilnehmer entfällt dieses Seminar.

Wären Sie trotzdem interessiert, in diesem Seminar vorzutragen, schicken Sie mir bitte ein email.

Organisatorisches

  Tag Zeit Ort Beginn Dozent
Seminar Do 10.15 - 12.00 1.31 (Oettingenstr. 67) 04.05.06 Andreas Abel

Für Studierende der Informatik im Grundstudium
Vorkenntnisse Grundkenntnisse in Informatik
Schein gilt für Diplomvorprüfung im Haupt- oder Nebenfach Informatik
Scheinerwerb Vortrag im Proseminar

Aktuelles

  • Termin wurde verlegt auf Do, 10-12 Uhr wegen Kollision mit Effiziente Algorithmen.
  • Erster Termin und Themenvergabe: Do, 4.5., 10.15, Raum Oe 1.31.

Einführung

Wir verschaffen uns einen geschichtlichen Überblick über die Entwicklung der Programmiersprachen und Programmierparadigmen, wie Kontrollfluss "Spaghetti", prozedural, objektorientiert, und funktional, anhand von konkreten Beispielen (realen Sprachen). Jede Programmiersprache wird vorgestellt in Syntax, Beispielprogrammen, Konzepten, Strukturierungsmöglichkeiten, Produktivität und Qualitätssicherungsmethoden. Wir diskutieren Vorzüge und Mängel im Design der einzelnen Sprachen.

Behandelte Sprachen

Kontrollfluss:
  • FORTRAN
  • COBOL
Prozedural:
  • C
  • PASCAL
  • MODULA
Objektorientiert:
  • Simula
  • C++
  • JAVA
  • C#
Funktional:
  • LISP
  • ML
  • Haskell
Logisch:
  • ProLog
Stack-basiert:
  • Forth
  • Postscript
Skriptsprachen:
  • Perl
  • JavaScript

Weitere Vorschläge willkommen.

Analyse einer Programmiersprache

Im Folgenden gibt es ein paar Schlagwörter, die bei der Analyse einer Programmiersprache helfen. Zu jeder Programmiersprache sollen ein paar Beispielprogramme implementiert werden, unter Verwendung des jeweiligen Programmierparadigmas (z.B. objektorientiert in C++, obwohl man in C++ auch prozedural programmieren kann). Im Vortrag müssen nicht alle untenstehenden Punkte behandelt werden. Wichtiger ist, dass der Vortrag "rund" ist, d.h. dem Hörer ermöglicht, sich ein Bild der Sprache zu machen.
  1. Beispielprogramme:
    • Hello world
    • Fakultätsfunktion
    • Zeilenumbruch (gegeben ein Text als String, formatiere ihn linksbündig auf die Breite von n Zeichen)
    • Binäre Suche
    • "map": Eine beliebige Funktion auf jedes Element einer verketten Liste anwenden
    • Einen Strom: Objekt mit den Methoden "hasNext?" und "pop"
  2. Syntax:
    • Lesbarkeit (Schlüsselwörter vs. Sonderzeichen)
    • Parsing: einfach, schwierig?
    • Umfang (wie viele Konstrukte, übersichtlich?)
  3. Strukturierungsmöglichkeiten:
    • Modularisierung
    • Abstraktion
    • separate Übersetzung
  4. Ausführung:
    • Interpreter
    • Compiler
    • Debugger
  5. Nicht-ausführbare Codebestandteile:
    • Dokumentation
    • Spezifikationen, logische Information, Invarianten
  6. Metaprogramming:
    • Makros
    • Templates
    • Ausführung zum Zeitpunkt der Übersetzung (partial evaluation)
  7. Qualitätssicherung:
    • Typsicherheit
    • Verhinderung von ungültigen Speicherzugriffen
    • Verhinderung von Laufzeitfehlern allgemein
    • systematisches Testen
    • Verifikation
  8. Anwendung:
    • Popularität
    • Sparte
    • Nische?
  9. Geschichte:
    • Wann erschienen
    • Welche Programmiersprachen waren Vorbild
    • Vorbild für welche anderen Sprachen
    • Vergleich mit anderen Sprachen


Valid HTML 4.01!
Andreas Abel
Last modified: Tue May 16 11:01:29 CEST 2006
Valid CSS!