Dynamische Programmiersprachen, WiSe 11
Die Veranstaltung "Dynamische Programmiersprachen" beschäftigt sich, wie der Name schon sagt, mit dynamischen Programmiersprachen wie z. B. Python und Ruby sowie deren Implementierung.
Vorlesungsinhalte
- Sprachkonzepte dynamischer Programmiersprachen
- Typisierung
- Reflection
- Mehrfachvererbung
- Interpreterbau
Zeiten
- Vorlesung: wöchentlich mittwochs 10:30 - 12:30 Uhr, Hörsaal 5H
- Übung: wöchentlich, Montag 14:30 Uhr im Seminarraum 25.12.02.55 (Laptops mitbringen)
Themen für die Abschlussprojekte
Mittwoch, 12. Okt 11 – Einführung
Inhalt:
- Eigenschaften von Dynamischen Programmiersprachen
- Python Grundlagen (Datentypen, Listen, Dictionaries, Methoden, Testing)
Material:
Übung:
Mi, 19. Okt 11 – Smalltalks Objektmodell
Material:
Mi, 26. Okt 11 – Attribute vs. Nachrichten
Material:
Übung:
Mi, 02. Nov 11 – Special Methods
Material:
Übung:
Mi, 09. Nov – Multiple Inheritance
Material:
Übung:
Mi, 16. Nov – Generators and Coroutines
Material
Übung
Mi, 23. Nov - Greenlets, Smalltalk
Material
- Generators (.py)
- Echo Client (.py)
- Echo Server (only one) (.py)
- Echo Server (select) (.py)
- Echo Server (generator) (.py)
- Echo Server (greenlet) (.py)
- Links:
- smalltalk-folien: http://scg.unibe.ch/teaching/smalltalk
- Pharo: http://scg.unibe.ch/teaching/smalltalk
- Squeak: http://squeak.org/
- Pharo by Example: http://pharobyexample.org/
Übung
Mi, 30. Nov - Smalltalk
Material
Übung
Mi, 07. Dez - Prototypes, Self
Material
Übung
Mi, 14. Dez - Ruby
Material
Mi, 21. Dez - Wiederholung
Übung
Mi, 21. Dez - Wiederholung
Vorlesung
- Python bytecode description: http://docs.python.org/library/dis.html#python-bytecode-instructions
- Slides
Übung
Mi, 18. Jan - PyPy
Vorlesung
- Einführung in PyPy
- Folien
Übung
Mi, 25. Jan - Last lecture
Vorlesung
- Partielle Auswertung
- Zusammenfassung der Themen aus der Vorlesung
- Tafelbild - Eigenschaften Dynamischer Programmiersprachen
Unless stated otherwise, the material for the lecture by Carl Friedrich Bolz, Armin Rigo and David Schneider is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Germany License.