Semantyka i weryfikacja programów/Ćwiczenia 11

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Semantyka w pełni kontynuacyjna

Zadanie 1

Zdefiniuj kontynuacyjną semantykę następującego języka:

Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle i \, ::= \,\, x := e \,\,|\,\, i_1; i_2 \,\,|\,\, \mathbf{if}\, b \,\mathbf{then}\, i_1 \,\mathbf{else}\, i_2 \,\,|\,\, \mathbf{skip} \,\,|\,\, \mathbf{while}\, b \,\mathbf{do}\, i \,\,|\,\} ,

Wyrażenie to wyrażenie warunkowe. Wylicza się go wyliczając najpierw . Jeśli wyliczy się ono do prawdy, to wartością całego wyrażenia jest wartość wyrażenia , a w przeciwnym razie wartość wyrażenia .

Zadanie 2

Tym razem większy przykład. Spróbujemy zdefiniować semantykę języka wzorowanego "nieco" na języku programowania C. Oto składnia:

Parser nie mógł rozpoznać (SVG (MathML może zostać włączone przez wtyczkę w przeglądarce): Nieprawidłowa odpowiedź („Math extension cannot connect to Restbase.”) z serwera „https://wazniak.mimuw.edu.pl/api/rest_v1/”:): {\displaystyle l \, ::= \,\, x \,\,|\,\, x [e] \,\,|\,\} ,

Zadanie 3

Zmień semantykę powyższego języka tak, aby przekazywanie parametrów odbywało się przez nazwę.

Zadanie 4

Zmień semantykę powyższego języka tak, aby przekazywanie parametrów odbywało się metodą copy-in copy-out.