Paradygmaty programowania/Ćwiczenia 9: U podstaw programowania obiektowego — rachunek sigma: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
 
Linia 1: Linia 1:
 
===Zadanie 1===  
 
===Zadanie 1===  
Zdefiniować obiekt, który prowadzi do obliczeń nieskończonych. Powinien to być obiekt inny niż Zadanie 1. Zdefiniować obiekt, który prowadzi do obliczeń nieskończonych. Powinien to być obiekt inny niż <math>[l=\varsigma(x)x.l]</math> podany w przykładzie.
+
Zdefiniować obiekt, który prowadzi do obliczeń nieskończonych. Powinien to być obiekt inny niż <math>[l=\varsigma(x)x.l]</math> podany w przykładzie.
  
 
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka:''' <div class="mw-collapsible-content" style="display:none"> Obiekt z przykładu działa analogicznie do funkcji wywołującej samą siebie, np.
 
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka:''' <div class="mw-collapsible-content" style="display:none"> Obiekt z przykładu działa analogicznie do funkcji wywołującej samą siebie, np.
  
       ''int f(int x) { return f(x); }''
+
       int f(int x) { return f(x); }
  
 
Rozważ obiekt analogiczny np. do takiego układu funkcji:
 
Rozważ obiekt analogiczny np. do takiego układu funkcji:
  
       ''int f(int x) { return g(x); }
+
       int f(int x) { return g(x); }
       int g(int x) { return f(x); }''
+
       int g(int x) { return f(x); }
 
</div></div>
 
</div></div>
  

Aktualna wersja na dzień 21:09, 23 wrz 2006

Zadanie 1

Zdefiniować obiekt, który prowadzi do obliczeń nieskończonych. Powinien to być obiekt inny niż podany w przykładzie.

Wskazówka:

Zadanie 2

Dlaczego ważne jest, by relacja spełniała własność Churcha-Rossera?

Wskazówka:

Zadanie 3*

Napisz interpreter (maszynę wirtualną) -rachunku. To jest zadanie nie tyle bardzo trudne, co mozolne...

Zadanie 4

Poniżej przdstawiona jest metodę translacji termów -rachunku do obiektów -rachunku. Przyjrzyj się jej zasadom i przetłumacz następujące -termy: .

  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle < \lambda(x)f > = [arg=\varsigma(x)x.arg, val=\varsigma(x)< f >\{x\leftarrow x.arg}]}

Zadanie 5

Napisz obiekt, który będzie się zachowywał podobnie jak komórka pamięci. Obiekt taki przechowuje pewną zawartość. Zawartość można zmieniać za pomocą metody ustaw i odczytywać za pomocą metody pobierz. Możesz wykorzystać fragmenty zapisane w konwencji -rachunku.

Zadanie 6

Rozbuduj obiekt z poprzedniego zadania o możliwość zrobienia kopii zapasowej zawartości (metoda kopiuj) i odtworzenia zawartości z owej kopii (metoda przywróć). Kopia zawartości może być przechowywana w dodatkowym polu kopia.

Zadanie 7*

Skostruuj obiekt działający dokładnie tak, jak w poprzednim zadaniu, ale nie używający do tego celu osobnego pola kopia.

Wskazówka:

Zadanie 8

Napisz obiekt punktzero, zawierający pola wspx i wspy oraz metody przesuńx i przesuńy. Intuicyjnie, początkowo obiekt ten odpowiada punktowi w środku układu współrzędnych. Wywołania metod przesuwają odpowiednią współrzędną o jeden.