Podstawy języków zorientowanych obiektowo
Semestr letni 2013/14 |
Dariusz Biernacki |
Środa 10:15-12:00 |
Sala 139 |
3 ECTS |
Tematem seminarium jest semantyka i systemy typów języków
zorientowanych obiektowo. Jego celem jest prezentacja
fundamentalnych pojęć dotyczących obiektowości (m.in.:
self, dynamiczne wiązanie metod, klasy, dziedziczenie,
podtypowanie, kowariancja i kontrawariancja, specjalizacja
metod) przy użyciu modeli teoretycznych takich języków
wraz z odniesieniem do istniejących języków zorientowanych
obiektowo takich jak Simula 67, C++, Smalltalk, Eiffel,
Java, Ocaml i Scala.
|
Terminarz
Data |
Temat |
Literatura |
Notatki |
Zadanie |
Prelegent |
26.02.2014 |
Spotkanie organizacyjne |
[D11, PJLH93] |
|
|
|
05.03.2014 |
Języki oparte na klasach |
[1]:2,3 |
Slajdy |
Zadanie 1 |
Rafał Łasocha |
12.03.2014 |
Języki oparte na obiektach |
[1]:4 |
Slajdy |
Zadanie 2 |
Tomasz Kozik |
19.03.2014 |
Beztypowy rachunek ς |
[1]:6 |
Slajdy |
Zadanie 3 |
Mateusz Gołębiewski |
26.03.2014 |
Rachunek ς z typami prostymi |
[1]:7 |
Slajdy |
Zadanie 4 |
Filip Pawlak |
02.04.2014 |
Podtypowanie |
[1]:8 |
Slajdy |
Zadanie 5 |
Artur Jarocki |
09.04.2014 |
Featherweight Java |
[7] |
Slajdy |
Zadanie 6 |
Piotr Krzemiński |
16.04.2014 |
Rekursja Seminarium odwołane,
odbędzie się w innym terminie |
[1]:9 |
|
|
Piotr Polesiuk |
23.04.2014 |
Przerwa świąteczna |
|
|
|
|
07.05.2014 |
Rekursja |
[1]:9 |
Slajdy |
Zadanie 7, Coq |
Piotr Polesiuk |
14.05.2014 |
Imperatywny rachunek pierwszego rzędu
Seminarium odwołane |
[1]:10-11 |
|
|
Tomasz Kozik |
21.05.2014 |
Rachunek drugiego rzędu |
[1]:13 |
Slajdy |
Zadanie 8 |
Mateusz Gołębiewski |
27.05.2014 godz. 12:15 s. 310 |
Typ Self |
[1]:16-17 |
Slajdy |
Zadanie 9 |
Filip Pawlak |
28.05.2014 |
Modelowe języki programowania
obiektowego Seminarium odwołane, odbędzie się w
innym terminie |
[1]:12,19 |
|
|
Artur Jarocki |
04.06.2014 |
Rachunek wyższego rzędu |
[1]:20 |
Slajdy |
Zadanie 10 |
Piotr Krzemiński |
11.06.2014 |
System typów języka Scala |
[6] |
Slajdy
Notatki
|
Zadanie 11 |
Rafał Łasocha |
11.06.2014 |
Modelowe języki programowania
obiektowego |
[1]:12,19 |
Slajdy |
|
Artur Jarocki |
|
Wymagania
Aby zaliczyć seminarium na ocenę
pozytywną należy:
- być obecnym na co najmniej 10 spotkaniach
- opracować i przedstawić wybrany temat (50%)
- rozwiązać co najmniej 3 wybrane zadania spośród
przygotowanych przez pozostałych uczestników seminarium
(50%).
Na opracowanie tematu składa się:
- przygotowanie prezentacji;
- przygotowanie dodatkowych materiałów w postaci
slajdów, notatek, implementacji, etc. i przesłanie ich
do prowadzącego nie później niż 3 dni po seminarium;
- przygotowanie zadania programistycznego (wraz z
rozwiązaniem) ilustrującego omawiany temat;
- ocena studenckich rozwiązań zaproponowanego zadania
(autor zadania ustala termin nadsyłania rozwiązań).
Uwaga:prezentacje w ramach seminarium odbywają się
w języku angielskim. Podobnie, wszelkie materiały
pomocnicze oraz rozwiązania zadań opracowywane są
w języku angielskim.
Prezentacja jest oceniana na podstawie zawartości
merytorycznej (80%) oraz formy (20%).
Porady na temat prezentacji naukowych:
- [D11]
Communication in Computer Science. Olivier Danvy. 4th
Summer School on Generative and Transformational
Techniques in Software Engineering, July 2011, Braga,
Portugal.
- [PJLH93]
How to give a good research talk. Simon Peyton Jones,
John Launchbury, John Hughes. SIGPLAN Notices 28(11),
November 1993.
|
Literatura
- A Theory of Objects. Martin Abadi and Luca
Cardelli. Springer-Verlag, 1996.
- Theoretical Aspects of Object-Oriented Programming:
Types, Semantics and Language Design. Carl A. Gunter and
John C. Mitchell. The MIT Press, 1993.
- Foundations of Object-Oriented Languages: Types and
Semantics. Kim Bruce. The MIT Press, 2002.
- Types and Programming Languages. Benjamin
C. Pierce. The MIT Press, 2002.
- Featherweight Java: A Minimal Core
Calculus for Java and GJ. Atsushi Igarashi,
Benjamin Pierce, and Philip Wadler. ACM Transactions
on Programming Languages and Systems (TOPLAS), 23(3),
May 2001.
- A
Core Calculus for Scala Type Checking. Vincent
Cremet, François Garillot, Sergueï Lenglet, and Martin
Odersky. Proceedings of MFCS 06, Stará Lesná, August
2006.
-
A Nominal Theory of Objects with Dependent Types.
Martin Odersky, Vincent Cremet, Christine Röckl, and
Matthias Zenger. Proceedings of ECOOP 2003, July 2003.
|