Semantyka języków programowania (Q2)

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Dariusz Biernacki
Liczba godzin 16 (wyk.) 14 (ćw.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi JP (języki programowania i logika)

Opis przedmiotu:

Przedmiot stanowi wprowadzenie do formalnych technik opisu semantyki (znaczenia) języków programowania. Omawiane na przedmiocie formalizmy znajdują zastosowanie w projektowaniu i implementacji języków programowania, a także we wnioskowaniu o programach. Wśród poruszanych tematów znajdą się: * semantyka obliczeń imperatywnych, w tym semantyka operacyjna oraz denotacyjna (włączając elementy teorii dziedzin) * semantyka obliczeń z interakcją (wejście/wyjście i/lub procesy współbieżne, strukturalna semantyka operacyjna i etykietowane systemy przejść, koindukcja i bisymulacje) * semantyka programów funkcyjnych (rachunek lambda jako modelowy język funkcyjny, semantyka redukcyjna, maszyny abstrakcyjne, kontynuacje) * jeżeli czas pozwoli: PCF (semantyka operacyjna i denotacyjna: poprawność i adekwatność, kontekstowa równoważność, _full abstraction_). W ramach ćwiczeń studenci będą rozwiązywać zadania teoretyczne ilustrujące i poszerzające treści prezentowane na wykładzie. Dodatkowo, zarówno na wykładzie jak i na ćwiczeniach mogą pojawić się zagadnienia implementacyjne do zrealizowania w języku OCaml. **Wymagania wstępne:** Logika dla informatyków, Metody programowania, Programowanie funkcyjne **Literatura:** 1. The Formal Semantics of Programming Languages: An Introduction. Glynn Winskel. Foundation of Computing Series, MIT Press 1993, ISBN 978-0-262-23169-5. 2. Semantics Engineering with PLT Redex. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt. The MIT Press 2009, ISBN 978-0262062756. 3. Theories of Programming Languages. John C. Reynolds. Cambridge University Press 1998, ISBN 978-0521594141. 4. [Lecture Notes on Semantics of Programming Languages](https://www.cl.cam.ac.uk/teaching/2001/Semantics/sempl.ps.gz). Andrew Pitts. University of Cambridge. 5. [Lecture Notes on Denotational Semantics](https://www.cl.cam.ac.uk/teaching/1819/DenotSem/DenotSem2018.pdf). Andrew Pitts. University of Cambridge.