Semantyka i weryfikacja programów - zajęcia fakultatywne WM-MA-SWP
- https://e.uksw.edu.pl/course/view.php?id=14642
- https://kpi.fei.tuke.sk/sk/person/william-steingartner (w cyklu 2022/23_Z)
- https://kpi.fei.tuke.sk/sk/person/william-steingartner (w cyklu 2023/24_Z)
Przedmiot stanowi wprowadzenie do formalnych metod opisu i analizy programów. Obejmuje zagadnienia od składni i drzew abstrakcyjnej składni (AST), poprzez wprowadzenie do semantyki języków programowania z uwzględnieniem numerałów, wyrażeń i stanu. Szczegółowo omawiane są różne style semantyki: naturalna, strukturalna operacyjna, abstrakcyjna implementacja i abstrakcyjne maszyny, a także rozszerzenia semantyki o konstrukcje sterujące.
Ważną część kursu stanowią procedury i ich opis w semantyce statycznej, dynamicznej i kombinowanej. Omawiane są także podejścia semantyczne: algebraiczne, aksjomatyczne, denotacyjne oraz kategorialne (denotacyjne i koalgebraiczne). Dodatkowo prezentowana jest semantyka języków dziedzinowych (DSL) i języków konkatenatywnych.
Z perspektywy praktycznej studenci uczą się:
- konstruować abstrakcyjne drzewa składniowe,
- definiować reguły semantyczne i dowodzić własności prostych programów,
- odprowadzać semantyczny interpreter języka przy pomocy narzędzia SLANG,
- analizować programy z wykorzystaniem logiki Hoare’a i podstaw hierarchii Chomsky’ego.
Celem zajęć jest opanowanie zarówno teoretycznych podstaw semantyki programów, jak i umiejętności praktycznego zastosowania formalnych metod do weryfikacji poprawności algorytmów i języków programowania.
W cyklu 2022/23_Z:
W ramach przedmiotu studenci zostaną zapoznani z metodami formalnego opisu wykonań algorytmów (programów). Przedstawione zostaną semantyki naturalne, denotacyjne i operacyjne. Bazą do tych rozważań będzie wprowadzenie do teorii automatów, języków formalnych i obliczeń. Studenci zapoznają się z podstawowymi strukturami i algorytmami tej teorii. Przedstawiona zostanie hierarchia Chomsky'ego. Na odpowiednich przykładach zostaną zaprezentowane własności algorytmów (programów) oraz metody ich weryfjikacji. |
W cyklu 2023/24_Z:
W ramach przedmiotu studenci zostaną zapoznani z metodami formalnego opisu wykonań algorytmów (programów). Przedstawione zostaną semantyki naturalne, denotacyjne i operacyjne. Bazą do tych rozważań będzie wprowadzenie do teorii automatów, języków formalnych i obliczeń. Studenci zapoznają się z podstawowymi strukturami i algorytmami tej teorii. Przedstawiona zostanie hierarchia Chomsky'ego. Na odpowiednich przykładach zostaną zaprezentowane własności algorytmów (programów) oraz metody ich weryfjikacji. |
Dyscyplina naukowa, do której odnoszą się efekty uczenia się
E-Learning
W cyklu 2021/22_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2024/25_Z: E-Learning | W cyklu 2023/24_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2022/23_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2020/21_Z: E-Learning (pełny kurs) z podziałem na grupy |
Grupa przedmiotów ogólnouczenianych
Opis nakładu pracy studenta w ECTS
Poziom przedmiotu
Symbol/Symbole kierunkowe efektów uczenia się
Typ przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
W cyklu 2023/24_Z: | W cyklu 2019/20_Z: | W cyklu 2021/22_Z: | W cyklu 2020/21_Z: | W cyklu 2022/23_Z: | W cyklu 2024/25_Z: |
Efekty kształcenia
Wykład
Wykład: MA2_W01, MA2_W02, MA2_W11; laboratorium: MA2_U01, MA2_U02, MA2_U19, MA2_K01
W1 – zna i rozumie podstawy teorii języków formalnych i automatów z zastosowaniami (MA2_W01)
W2 – Student zna i rozumie podstawy teoretyczne wyprowadzania ciągów znaków w językach formalnych (MA2_W02)
W3 - Student zna i rozumie metody sprawdzania składni programu, a także pojęcia poprawności programu oraz techniki i formalizmy ich udowadniania (MA2_W11)
Laboratorium
U1 – potrafi zastosować wybrane metody matematyczne do analizy poprawności algorytmów (MA2_U01),
U2 - potrafi zastosować różne rodzaje analiz w celu wywnioskowania poprawnych form ciągów znaków zgodnie z gramatyką (MA2_U19),
U3 – potrafi samodzielnie zastosować poznane metody do podobnych struktur w językach formalnych (MA2_U02),
K1 - jest gotowy do aktywnego udziału w zajęciach laboratoryjnych i twórczego rozwiązywania problemów (MA2_K01).
Kryteria oceniania
Dla wszystkich efektów przyjmuje się następujące kryteria oceny we wszystkich formach weryfikacji:
ocena 5: osiągnięty w pełni (bez uchwytnych niedociągnięć),
ocena 4,5: osiągnięty niemal w pełni i nie są spełnione kryteria przyznania wyższej oceny,
ocena 4: osiągnięty w znacznym stopniu i nie są spełnione kryteria przyznania wyższej oceny,
ocena 3,5: osiągnięty w znacznym stopniu – z wyraźną przewagą pozytywów – i nie są spełnione kryteria przyznania wyższej oceny,
ocena 3: osiągnięty dla większości przypadków objętych weryfikacją i nie są spełnione kryteria przyznania wyższej oceny,
ocena 2: nie został osiągnięty dla większości przypadków objętych weryfikacją.
Literatura
W cyklu 2022/23_Z:
1. J. Hopcroft, J. Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, PWN, Warszawa 2003. |
W cyklu 2023/24_Z:
1. J. Hopcroft, J. Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, PWN, Warszawa 2003. |
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: