Loglan dla innych języków programowania: Różnice pomiędzy wersjami

Z Lem
Skocz do: nawigacji, wyszukiwania
(Kreczmara system zarządzania pamięcia obiektów)
Linia 3: Linia 3:
 
== Kreczmara system zarządzania pamięcia obiektów ==
 
== Kreczmara system zarządzania pamięcia obiektów ==
 
Porównaj sposoby pozbywania się niepotrzebnych obiektów
 
Porównaj sposoby pozbywania się niepotrzebnych obiektów
 +
{| class="wikitable"
 +
|-
 +
! Tekst nagłówka !! Loglan'82 !! C++ !! Java, Python
 +
|-
 +
| '''Przed''' || Na pewien obiekt ''o'' wskazują zmienne ''x,y, ... , z''. || Treść komórki || Treść komórki
 +
|-
 +
|  '''Instrukcja''' || kill(y) || delete(x) || Treść komórki
 +
|-
 +
| '''Po''' || wszystkie zmienne przyjęły wartość '''none'''.
 +
Obiekt został usunięty.
 +
Próba dostępu do obiektu podnosi wyjątek ''reference to none''. || Obiekt ''o'' został usuniety.
 +
Zmienna x ma wartość null.
 +
Inne zmienne wskazują na zwolnione pole - jest to groźna ''wisząca referencja''. || Treść komórki
 +
|}
 +
 +
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Loglan'82 !! C++ !! Java, Python
 
! Loglan'82 !! C++ !! Java, Python
 
|-
 
|-
| '''Przed''': Na pewien obiekt ''o'' wskazuja zmienne ''x,y, ... , z''. || Treść komórki || Treść komórki
+
| '''Przed''': Na pewien obiekt ''o'' wskazują zmienne ''x,y, ... , z''. || Treść komórki || Treść komórki
 
|-
 
|-
 
| '''Instrukcja''': kill(y) || Treść komórki || Treść komórki
 
| '''Instrukcja''': kill(y) || Treść komórki || Treść komórki

Wersja z 13:55, 6 mar 2013

Wyznaczanie bezpośredniej superklasy

Nasze doświadczenie uzyskane podczas pracy nad Loglanem'82 okazało się przydatne w sformułowaniu i rozwiązaniu natępującego zagadnienia występującego w języku Java: w jaki sposób należy wyznaczać bezpośrednią superklasę danej klasy?

Kreczmara system zarządzania pamięcia obiektów

Porównaj sposoby pozbywania się niepotrzebnych obiektów

Tekst nagłówka Loglan'82 C++ Java, Python
Przed Na pewien obiekt o wskazują zmienne x,y, ... , z. Treść komórki Treść komórki
Instrukcja kill(y) delete(x) Treść komórki
Po wszystkie zmienne przyjęły wartość none.

Obiekt został usunięty. Próba dostępu do obiektu podnosi wyjątek reference to none. || Obiekt o został usuniety. Zmienna x ma wartość null. Inne zmienne wskazują na zwolnione pole - jest to groźna wisząca referencja. || Treść komórki


Loglan'82 C++ Java, Python
Przed: Na pewien obiekt o wskazują zmienne x,y, ... , z. Treść komórki Treść komórki
Instrukcja: kill(y) Treść komórki Treść komórki
Po: wszystkie zmienne przyjęły wartość none. Obiekt został usunięty. Próba dostępu do obiektu podnosi wyjątek reference to none. Treść komórki Treść komórki Treść komórki

Bibliografia

  1. [Langmaack, Salwicki, Warpechowski 2009 ] Hans Langmaack, Andrzej Salwicki, Marek Warpechowski. On an algorithm determining direct superclasses in Java and similar languages with inner classes—Its correctness, completeness and uniqueness of solutions. „Information and Computation”, s. 389-410, 2009.