Loglan'82: Różnice pomiędzy wersjami
Linia 3: | Linia 3: | ||
* Oprócz modułów klas ('''class''') oferuje moduły współprogramów ('''coroutine''') i procesów ('''process'''). Możesz więc tworzyc nie tylko obiekty klas, ale także obiekty współprogramów i obiekty procesów. | * Oprócz modułów klas ('''class''') oferuje moduły współprogramów ('''coroutine''') i procesów ('''process'''). Możesz więc tworzyc nie tylko obiekty klas, ale także obiekty współprogramów i obiekty procesów. | ||
* Loglanowskie maszyny wirtualne mogą się łączyć (przez sieć) w wirtualny, wieloprocesorowy komputer loglanowski by wspólnie wykonywać program(y), | * Loglanowskie maszyny wirtualne mogą się łączyć (przez sieć) w wirtualny, wieloprocesorowy komputer loglanowski by wspólnie wykonywać program(y), | ||
− | * Obiekty procesów mogą być alokowane na różnych węzłach sieci połączonych maszyn wirtualnych, bądź na tym samym komputerze. Oznacza to, że Loglan ma ''jeden model'' obliczeń współbieżnych i rozproszonych (mniej uczenia się). | + | * Obiekty procesów (''krótko'': wątki) mogą być alokowane na różnych węzłach sieci połączonych maszyn wirtualnych, bądź na tym samym komputerze. Oznacza to, że Loglan ma ''jeden model'' obliczeń współbieżnych i rozproszonych (mniej uczenia się). |
* Loglan'82 oferuje własny, oryginalny i w pełni obiektowy protokół komunikacji pomiędzy obiektami wątków tzw. obce wołanie metod (''ang.'' alien call). | * Loglan'82 oferuje własny, oryginalny i w pełni obiektowy protokół komunikacji pomiędzy obiektami wątków tzw. obce wołanie metod (''ang.'' alien call). | ||
* Każdy wątek może stworzyć swój system współprogramów i zarządzać nim. | * Każdy wątek może stworzyć swój system współprogramów i zarządzać nim. | ||
Linia 28: | Linia 28: | ||
Przy całym bogactwie narzędzi programotwórczych składnia Loglanu jest zwarta i przejrzysta. [[Media:Quickref.pdf| Obejrzyj zwięzłą prezentację języka Loglan'82]] | Przy całym bogactwie narzędzi programotwórczych składnia Loglanu jest zwarta i przejrzysta. [[Media:Quickref.pdf| Obejrzyj zwięzłą prezentację języka Loglan'82]] | ||
− | Nie jest naszym zadaniem | + | Nie jest naszym zadaniem rozstrzygać, która ortografia jest lepsza? ta Loglanu? czy tez ta Javy i C++? Obejrzyj porównanie cech semantycznych kilku języków programowania obiektowego. [[Media:ComparinObjectLanguages.pdf| Porównaj różne języki programowania obiektowego]] |
<div style="text-align: right">[[DokumentacjaLoglanu|Więcej]]. </div> | <div style="text-align: right">[[DokumentacjaLoglanu|Więcej]]. </div> | ||
Linia 45: | Linia 45: | ||
== [[kompilatory|Kompilatory]] == | == [[kompilatory|Kompilatory]] == | ||
W tej chwili mamy do zaoferowania [[kompilatory]] na platformę Linuxową i na Windows. | W tej chwili mamy do zaoferowania [[kompilatory]] na platformę Linuxową i na Windows. | ||
− | == [[ | + | == [[Badania podstawowe]] == |
+ | Zanim powstał nasz język przeprowadzono badania dotyczące | ||
Wyniki uzyskane podczas prac nad Loglanem okazały się przydatne w analizie języka Java. Mogą znaleźć zastosowanie w innych językach. | Wyniki uzyskane podczas prac nad Loglanem okazały się przydatne w analizie języka Java. Mogą znaleźć zastosowanie w innych językach. | ||
Wersja z 13:45, 14 mar 2014
Język programowania obiektowego i rozproszonego ma wiele cech, które czynią z niego narzędzie programowania lepsze od innych:
- Ma unikalny, tani i bezpieczny system zarządzania obiektami, por.
- Oprócz modułów klas (class) oferuje moduły współprogramów (coroutine) i procesów (process). Możesz więc tworzyc nie tylko obiekty klas, ale także obiekty współprogramów i obiekty procesów.
- Loglanowskie maszyny wirtualne mogą się łączyć (przez sieć) w wirtualny, wieloprocesorowy komputer loglanowski by wspólnie wykonywać program(y),
- Obiekty procesów (krótko: wątki) mogą być alokowane na różnych węzłach sieci połączonych maszyn wirtualnych, bądź na tym samym komputerze. Oznacza to, że Loglan ma jeden model obliczeń współbieżnych i rozproszonych (mniej uczenia się).
- Loglan'82 oferuje własny, oryginalny i w pełni obiektowy protokół komunikacji pomiędzy obiektami wątków tzw. obce wołanie metod (ang. alien call).
- Każdy wątek może stworzyć swój system współprogramów i zarządzać nim.
Mamy nadzieję, że informacje zawarte na tych stronach okażą się interesujące dla:
- Ambitnych programistów -- język Loglan'82 oferuje garść konstrukcji i rozwiązań nieznanych w innych językach programowania :
- Jeśli chcesz świadomie zarządzać pamięcią obiektów i uniknąć przy tym niebezpiecznego zjawiska wiszacych referencji to spróbuj instrukcji kill( ),
- Jeśli oprogramowanie, które tworzysz ma służyć obliczeniom współbieżnym, lub rozproszonym lub jakiejś ich kombinacji to wybierz Loglan'82 z jego jednym modelem obejmującym wszystkie te rozdaje obliczeń, zredukuje to znacznie koszty opanowania programowania współbieżnego i/lub rozproszonego,
- Na pewno warto zapoznać sie z protokołem obcego wołania metod wątku A podczas wykonywania instrukcji wątku B, jest to oryginalny wynalazek znany jak dotąd tylko w Loglanie,
- Jeśli masz zamiar zaprogramować obliczenia quasi-współbieżne to zapoznaj się z współprogramami (coroutines)
- Nauczycieli -- Loglan'82 jest dobrym wyborem:
- jeśli chcesz przedstawić wszystkie narzędzia i metody programowania obiektowego unikając przy tym przechodzenia od jednego do kolejnego języka programowania dla zilustrowania kolejnych narzędzi programowania obiektowego.
- Jak się mozna przekonać z programowaniem w Loglanie mozna połączyć analizę wymagań i weryfikację oprogramowania względem wymagań.
- Badaczy -- Ponieważ język programowania obiektowego, powstał w wyniku poszukiwania odpowiedzi na kilka problemów:
- czy można połączyć dwie metody tworzenia modułów: zagnieżdżanie oraz dziedziczenie? Zanim zezwoliliśmy na zagnieżdżanie i dziedziczenie klas musieliśmy odpowiedzięc na kolejne pytania
- Jak zapewnić statyczne dowiązanie wystapienia identyfikatora z wystąpieniem odpowiedniej deklaracji?
- Jak określić, która klasa jest dziedziczona przez ...?
- Czy można odziedziczyć klasę A w funkcji j?
- Czy zarządzanie pamięcią obiektów musi doprowadzać do zjawiska wiszących referencji? ::* Czy zaśmiecanie pamięci może być skutecznie zwalczane przez jej odśmiecanie tj. garbage collection?
- Czy można bezpiecznie i efektywnie usuwać obiekty już niepotrzebne?
- Jak zdefiniowac semantyke współprogramów w sposób wolny od sprzeczności?
Dokumentacja
Przy całym bogactwie narzędzi programotwórczych składnia Loglanu jest zwarta i przejrzysta. Obejrzyj zwięzłą prezentację języka Loglan'82
Nie jest naszym zadaniem rozstrzygać, która ortografia jest lepsza? ta Loglanu? czy tez ta Javy i C++? Obejrzyj porównanie cech semantycznych kilku języków programowania obiektowego. Porównaj różne języki programowania obiektowego
Wybrane Przykłady
Umieszczamy tu kilka wybranych przykładów programów napisanych w Loglanie'82
Program mnożenia macierzy metodą Winograda
Współprogramy
- Media:MERGE.pdf - program i jego omówienie
- Media:TREEGEN.pdf - program i dowód poprawności
Kompilatory
W tej chwili mamy do zaoferowania kompilatory na platformę Linuxową i na Windows.
Badania podstawowe
Zanim powstał nasz język przeprowadzono badania dotyczące Wyniki uzyskane podczas prac nad Loglanem okazały się przydatne w analizie języka Java. Mogą znaleźć zastosowanie w innych językach.