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:
Prozedural:
Objektorientiert:
Funktional:
Logisch:
Stack-basiert:
Skriptsprachen:
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.
- 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"
- Syntax:
- Lesbarkeit (Schlüsselwörter vs. Sonderzeichen)
- Parsing: einfach, schwierig?
- Umfang (wie viele Konstrukte, übersichtlich?)
- Strukturierungsmöglichkeiten:
- Modularisierung
- Abstraktion
- separate Übersetzung
- Ausführung:
- Interpreter
- Compiler
- Debugger
- Nicht-ausführbare Codebestandteile:
- Dokumentation
- Spezifikationen, logische Information, Invarianten
- Metaprogramming:
- Makros
- Templates
- Ausführung zum Zeitpunkt der Übersetzung (partial evaluation)
- Qualitätssicherung:
- Typsicherheit
- Verhinderung von ungültigen Speicherzugriffen
- Verhinderung von Laufzeitfehlern allgemein
- systematisches Testen
- Verifikation
- Anwendung:
- Popularität
- Sparte
- Nische?
- Geschichte:
- Wann erschienen
- Welche Programmiersprachen waren Vorbild
- Vorbild für welche anderen Sprachen
- Vergleich mit anderen Sprachen
|
Andreas Abel
Last modified: Tue May 16 11:01:29 CEST 2006
|
|
|