Podstawy języków zorientowanych obiektowo (seminarium), II UWr, 2013/14

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:
  1. być obecnym na co najmniej 10 spotkaniach
  2. opracować i przedstawić wybrany temat (50%)
  3. rozwiązać co najmniej 3 wybrane zadania spośród przygotowanych przez pozostałych uczestników seminarium (50%).
Na opracowanie tematu składa się:
  1. przygotowanie prezentacji;
  2. 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;
  3. przygotowanie zadania programistycznego (wraz z rozwiązaniem) ilustrującego omawiany temat;
  4. 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

  1. A Theory of Objects. Martin Abadi and Luca Cardelli. Springer-Verlag, 1996.
  2. Theoretical Aspects of Object-Oriented Programming: Types, Semantics and Language Design. Carl A. Gunter and John C. Mitchell. The MIT Press, 1993.
  3. Foundations of Object-Oriented Languages: Types and Semantics. Kim Bruce. The MIT Press, 2002.
  4. Types and Programming Languages. Benjamin C. Pierce. The MIT Press, 2002.

  5. 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.
  6. 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.
  7. A Nominal Theory of Objects with Dependent Types. Martin Odersky, Vincent Cremet, Christine Röckl, and Matthias Zenger. Proceedings of ECOOP 2003, July 2003.
http://www.ii.uni.wroc.pl/~dabi