Paradygmaty programowania/Test 9: U podstaw programowania obiektowego — rachunek sigma
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 oznacza:
obiekt pusty
obiekt zawierający metodę pustą
obiekt zawierający jedną metodę, zwracającą obiekt pusty
ten zapis jest niepoprawny
Jeśli jest obiektem , to wywołanie da w wyniku:
obiekt pusty
obiekt
wywołanie to nie da wyniku, gdyż obliczenia nie kończą się
Jeśli jest obiektem , to wywołanie da w wyniku:
obiekt pusty
obiekt
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 i , to:
istnieje takie, że i
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