Paradygmaty programowania/Test 9: U podstaw programowania obiektowego — rachunek sigma

From Studia Informatyczne

Test 9

Rachunek sigma opisuje obiekty na poziomie abstrakcji podobnym do tego, na którym funkcje są opisywane przez:

języki wysokiego poziomu, np. Pascal, C, Java

rachunek lambda

teorię mnogości

rachunek sigma w ogóle nie zajmuje się obiektami

Podobnie jak w rachunku sigma, obiekty bez klas pojawiają się w języku:

C++

C

Java

JavaScript

Która relacja nie pasuje do pozostałych w kontekście języka C++?

relacja dziedziczenia

relacja podklasy

relacja podtypu

relacja zawierania bloków kodu

W rachunku sigma obiekt to zbiór metod, dla których mamy dwie operacje — wywołanie i:

nadpisanie

pobranie historii wywołań

zapamiętanie wyniku

zliczenie parametrów

W rachunku sigma każda metoda posiada ciało oraz parametr reprezentujący:

historię wywołań

jaźń obiektu

nazwę obiektu

wynik obliczeń

Zapis \displaystyle [l=\varsigma(x)[]] oznacza:

obiekt pusty

obiekt zawierający metodę pustą

obiekt zawierający jedną metodę, zwracającą obiekt pusty

ten zapis jest niepoprawny

Jeśli \displaystyle o jest obiektem \displaystyle [l=\varsigma(x)x.l], to wywołanie \displaystyle o.l da w wyniku:

obiekt pusty

obiekt \displaystyle o

\displaystyle o.l

wywołanie to nie da wyniku, gdyż obliczenia nie kończą się

Jeśli \displaystyle o jest obiektem \displaystyle [l=\varsigma(x)x], to wywołanie \displaystyle o.l da w wyniku:

obiekt pusty

obiekt \displaystyle o

\displaystyle o.l

wywołanie to nie da wyniku, gdyż obliczenia nie kończą się

Relacja redukcji (rozszerzona, z gwiazdką) w rachunku sigma spełnia własność Churcha-Rossera. Oznacza to, że jeśli \displaystyle a \to^* b i \displaystyle a \to^* c, to:

\displaystyle b = c

\displaystyle b \to^* c

\displaystyle c \to^* b

istnieje \displaystyle d takie, że \displaystyle b \to^* d i \displaystyle c \to^* d

Otrzymawszy wyrażenie, maszyna wirtualna rachunku sigma może zachować się na jeden z trzech sposobów. Które z wymienionych poniżej zachowań nie odpowiada żadnemu z nich?

obliczenia nieskończone

wyliczenie wartości, która nie jest poprawnym wynikiem

wyliczenie poprawnego wyniku

zgłoszenie błędu w wyrażeniu