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

Z Lem
Skocz do: nawigacji, wyszukiwania
(Bibliografia)
(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(1945 - 1996) opracował kompletny system zarządzania obiektami[zob.{{odn|ref=nie|Kreczmar|Cioni|1984}}]. System dostarcza operacji
+
Prof. Antoni Kreczmar(1945 - 1996) opracował kompletny system zarządzania obiektami[zob.{{odn|ref=nie|Cioni|Kreczmar|Vitale|1984}}]. System dostarcza operacji
 
* wspomagających powstanie obiektu - '''new''',
 
* wspomagających powstanie obiektu - '''new''',
 
* sprawdzających legalność operacji dostępu do atrybutów obiektu,
 
* sprawdzających legalność operacji dostępu do atrybutów obiektu,
Linia 24: Linia 24:
 
|'''Ryzyko'''|| Brak.<br>Próba dostępu do obiektu podnosi wyjątek ''reference to none''.  || Duże prawdopodobieństwo błędu ''wiszących referencji''<br> Duże prawdopodobieństwo błędu sprzecznych informacji || Spore szanse na to, że programista zapomni usunąć, którąś referencję do niepotrzebnego obiektu.  
 
|'''Ryzyko'''|| Brak.<br>Próba dostępu do obiektu podnosi wyjątek ''reference to none''.  || Duże prawdopodobieństwo błędu ''wiszących referencji''<br> Duże prawdopodobieństwo błędu sprzecznych informacji || Spore szanse na to, że programista zapomni usunąć, którąś referencję do niepotrzebnego obiektu.  
 
|}
 
|}
 +
 
== Protokół obcego wołania metod w obiektach wątkach ==
 
== Protokół obcego wołania metod w obiektach wątkach ==
 
Ta oryginalna koncepcja zasługuje na uwagę.
 
Ta oryginalna koncepcja zasługuje na uwagę.

Wersja z 23: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

Prof. Antoni Kreczmar(1945 - 1996) opracował kompletny system zarządzania obiektami[zob.Cioni, Kreczmar i Vitale 1984 ↓]. 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.
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. 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ł usunięty, pod warunkiem, że nie zapomniano o żadnej zmiennej wskazującej na obiekt o.[1]
Koszt Stały (nieduży) Stały (nieduży). Znaczny, zależny od liczby zmiennych wskazujących na obiekt i od łącznego rozmiaru pamięci obiektowej (koszt operacji gc()).
Ryzyko Brak.
Próba dostępu do obiektu podnosi wyjątek reference to none.
Duże prawdopodobieństwo błędu wiszących referencji
Duże prawdopodobieństwo błędu sprzecznych informacji
Spore szanse na to, że programista zapomni usunąć, którąś referencję do niepotrzebnego obiektu.

Protokół obcego wołania metod w obiektach wątkach

Ta oryginalna koncepcja zasługuje na uwagę.

Łączenie maszyn wirtualnych w wieloprocesorowy wirtualny komputer

Koncepcja sprawdzona w Loglanie'82 może być przydatna w innych systemach.

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. 
  2. [Langmaack, Salwicki, Warpechowski 2008 ] Hans Langmaack, Andrzej Salwicki, Marek Warpechowski. A deterministic algorithm elaborating direct superclasses in Java-like languages. „Fundamenta Informaticae”, s. 389-410, 2008. 
  3. [Langmaack, Salwicki, Warpechowski 2013 ] Hans Langmaack, Andrzej Salwicki, Marek Warpechowski. Some Methodological Remarks Inspired by the Paper "On inner classes" by A. Igarashi and B. Pierce. „Fundamenta Informaticae”, s. 227 - 274, 2013. 
  4. [Kreczmar, Cioni 1984] Antoni Kreczmar, Gianna Cioni. Programmed deallocation without dangling reference. „Information Processing Letters”, s. 179-187, 1984. 
  5. [Cioni,Kreczmar,Vitale 1989] Gianna Cioni, Antoni Kreczmar, Ricardo Vitale: Storage Management. T. Advanced Programming Methodologies. London: Academic Press, 1989, s. 341-366. ISBN 0121746909.