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 2: Linia 2:
 
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?''
 
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 ==
 
== Kreczmara system zarządzania pamięcia obiektów ==
Prof. Antoni Kreczmar opracował kompletny system zarządzania obiektami.''rozwiń to!''  
+
Prof. Antoni Kreczmar(1945 - 1996) opracował kompletny system zarządzania obiektami. System dostarcza operacji
 +
* wspomagających powstanie obiektu - '''new''',
 +
* sprawdzających legalność operacji dostępu do atrybutów obiektu,
 +
* usuwania obiektu na żądanie,
 +
* defragmentacji i odśmiecania pamięci obiektowej. [zob. ] 
 +
 
  
 
Porównaj sposoby pozbywania się niepotrzebnych obiektów
 
Porównaj sposoby pozbywania się niepotrzebnych obiektów
Linia 13: Linia 18:
 
|  '''Instrukcja''' || kill(x<sub>i</sub>) || delete(x<sub>i</sub>) ||  ''x<sub>1</sub>=null;x<sub>2</sub>=null; ...  x<sub>n</sub>=null;''Po wykonaniu instrukcji ''gc()'' obiekt zostanie usunięty.
 
|  '''Instrukcja''' || kill(x<sub>i</sub>) || delete(x<sub>i</sub>) ||  ''x<sub>1</sub>=null;x<sub>2</sub>=null; ...  x<sub>n</sub>=null;''Po wykonaniu instrukcji ''gc()'' obiekt zostanie usunięty.
 
|-
 
|-
| '''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, pod warunkiem, że nie zapomniano o żadnej zmiennej wskazującej na obiekt ''o''.<ref>Sytuacja w Pythonie wymaga dłuzszego opisu.</ref>
+
| '''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ł usunięty. ''x'' ma wartość null. Inne zmienne wskazują na zwolnione pole - jest to '''groźny''' błąd - ''wiszącej referencji''. || Obiekt został usuniety, pod warunkiem, że nie zapomniano o żadnej zmiennej wskazującej na obiekt ''o''.<ref>Sytuacja w Pythonie wymaga dłuzszego opisu.</ref>
 
|-
 
|-
|'''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.
+
|'''Koszt'''|| Stały (nieduży) || Stały (nieduży). <br>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.
 
|}
 
|}
 +
 
== Przypisy ==
 
== Przypisy ==
 
<references/>
 
<references/>
 
== 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 18:48, 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

Prof. Antoni Kreczmar(1945 - 1996) opracował kompletny system zarządzania obiektami. System dostarcza operacji

  • wspomagających powstanie obiektu - new,
  • sprawdzających legalność operacji dostępu do atrybutów obiektu,
  • usuwania obiektu na żądanie,
  • defragmentacji i odśmiecania pamięci obiektowej. [zob. ]


Porównaj sposoby pozbywania się niepotrzebnych obiektów

Loglan'82 C++ Java, Python
Przed Na pewien obiekt o wskazują zmienne x1,x2, ... , xn. Na pewien obiekt o wskazują zmienne x1,x2, ... , xn. Na pewien obiekt o wskazują zmienne x1,x2, ... , xn.
Instrukcja kill(xi) delete(xi) x1=null;x2=null; ... xn=null;Po wykonaniu instrukcji gc() obiekt zostanie usunięty.
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ł usunięty. x ma wartość null. Inne zmienne wskazują na zwolnione pole - jest to groźny błąd - wiszącej referencji. Obiekt został usuniety, pod warunkiem, że nie zapomniano o żadnej zmiennej wskazującej na obiekt o.[1]
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.

Przypisy

  1. Sytuacja w Pythonie wymaga dłuzszego opisu.

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.