Loglan dla innych języków programowania: Różnice pomiędzy wersjami
Z Lem
(→Kreczmara system zarządzania pamięcia obiektów) |
(→Kreczmara system zarządzania pamięcia obiektów) |
||
Linia 11: | Linia 11: | ||
| '''Instrukcja''' || kill(y) || delete(x) || 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. | + | | '''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''. || Obiekt został usuniety. |
− | Zmienna x ma wartość null. | + | |- |
− | Inne zmienne wskazują na zwolnione pole - jest to groźna ''wisząca referencja''. || | + | |'''Koszt'''|| Stały (nieduży) || Stały (nieduży). Duże prawdopodobieństwo błędu ''wiszacych referencji'' || Znaczny, zależny od liczby zmiennych wskazujących na obiekt i od łącznego rozmiaru pamięci obiektowej. |
|} | |} | ||
== Bibliografia == | == Bibliografia == | ||
# [Langmaack, Salwicki, Warpechowski 2009 ] {{cytuj pismo|odn=tak|imię=Hans|nazwisko=Langmaack|imię2=Andrzej|nazwisko2=Salwicki|imię3=Marek|nazwisko3=Warpechowski |tytuł=On an algorithm determining direct superclasses in Java and similar languages with inner classes—Its correctness, completeness and uniqueness of solutions|czasopismo=Information and Computation |strony=389-410 |rok=2009 }} | # [Langmaack, Salwicki, Warpechowski 2009 ] {{cytuj pismo|odn=tak|imię=Hans|nazwisko=Langmaack|imię2=Andrzej|nazwisko2=Salwicki|imię3=Marek|nazwisko3=Warpechowski |tytuł=On an algorithm determining direct superclasses in Java and similar languages with inner classes—Its correctness, completeness and uniqueness of solutions|czasopismo=Information and Computation |strony=389-410 |rok=2009 }} |
Wersja z 14:03, 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. | Obiekt został usuniety. |
Koszt | Stały (nieduży) | Stały (nieduży). Duże prawdopodobieństwo błędu wiszacych referencji | Znaczny, zależny od liczby zmiennych wskazujących na obiekt i od łącznego rozmiaru pamięci obiektowej. |
Bibliografia
- [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.