Podstawy języków programowania w systemie Coq zima 2015/16

Język wykładowy Polski
Opiekun Dariusz Biernacki
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi JP (języki programowania i logika)

Opis przedmiotu:

Niezawodność oprogramowania należy do najbardziej istotnych wyzwań wspołczesnej informatyki. Systemy wspomagające dowodzenie twierdzeń, takie jak [Coq](https://coq.inria.fr/), zyskują w ostatnich latach ogromną popularność jako platformy wspierające konstruowanie poprawnego i bezpiecznego oprogramowania, łącząc w sobie język programowania oraz system logiczny. Coq pozwala nie tylko na formalne specyfikowanie oraz weryfikowanie poprawności programow komputerowych (tzw. certyfikowanie kodu), ale także na precyzyjne definiowanie i analizę całych językow programowania. Przedmiot stanowi wprowadzenie do formalnych podstaw niezawodnego oprogramowania, przy użyciu systemu Coq. Poruszana tematyka dotyczy wybranych elementow logiki, teorii językow programowania oraz samego systemu Coq, a całość przedmiotu realizowana jest w oparciu o podręcznik [Software Foundations](http://www.cis.upenn.edu/%7Ebcpierce/sf/current/index.html). Omawiane zagadnienia: 1. Programowanie funkcyjne w systemie Coq 2. Wnioskowanie w systemie Coq (definicje indukcyjne, dedukcja naturalna, język taktyk, automatyzacja wnioskowania) 3. Dowody jako programy (izomorfizm Curry'ego-Howarda, typy zależne, ekstrakcja programow z dowodow) 4. Semantyka operacyjna językow imperatywnych (strukturalna semantyka operacyjna małych i dużych krokow, maszyny abstrakcyjne, transformacje programow) 5. Specyfikacja i weryfikacja programow imperatywnych (logika Hoare'a) 6. Rachunek lambda z typami prostymi (semantyka operacyjna, sprawdzanie typu, normalizacja) Literatura: 1. Benjamin C. Pierce. [Software Foundations](http://www.cis.upenn.edu/~bcpierce/sf/). 2015 2. Benjamin C. Pierce. [Programming Languages and Types](https://www.cis.upenn.edu/~bcpierce/tapl/). The MIT Press, 2002.

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Dariusz Biernacki
śr 10:15-12:00 (s. 141) 20 13 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Dariusz Biernacki
śr 12:15-14:00 (s. 137) 15 13 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Dariusz Biernacki 242 wtorek 14-16 (po uzgodnieniu przez e-mail)