LEM
Z Lem
Lem - robocza nazwa języka programowania, następcy Loglanu.
- Nowy język nie musi być bardzo różny od Loglanu. Nie widać powodów, które by uzasadniały rewolucję.
- Czego brakuje? Co warto wprowadzić?
- Brakuje narzędzi programowania równoległego. Tej sprawy nie mozna pozostawiać systemowi operacyjnemu. To byłby błąd.
(czerwiec 2018) Mam propozycję.
- Warto uprzadkować przekazywanie typu obiektowego jako parametru. Tu powinno wystarczyć zadeklarowanie, że parametr aktualny typ T ma byc podtypem typu Q. W ten sposób uzyskalibyśmy możliwość sprawdzenia typu aktualnego, a także otwieramy sobie drogę do korzystania z metod (wirtualnych) typu Q wewnątrz nowo deklarowanego modułu np. procedury ...
- Skoncentrować się na opisie semantyki (operacyjnej) tzn. zdefiniować precyzyjnie jak ma wyglądać obliczenie. Kiedy będzie zgłaszany błąd? etc.
- Składnia -- wyraźnie powiedzieć "pisz jak chcesz". Tzn. dać możliwość wybierania wariantu składni, a la Java lub a la Loglan. To nie jest najwazniejsze.
- Bardzo ważne: dodac tam gdzie to możliwe aksjomaty konstrukcji składniowych jako partnera dla opisu semantyki operacyjnej.
- Mniej ważne, ale ważne: stream zamiast file.
- Ważne: biblioteki klas - to jest narzędzie o zasadniczym znaczeniu
- Ważne: Partnerem dla Lema ma być proof-checker następca Mizara.
- Oprócz modułów process, zaproponujmy moduły server. Obiekt serwer może udostępniać swoje metody równolegle do swojego wątku. Metody te uruchamiane na rdzeniach procesora działaja równolegle. I oczywiscie mamy tu do czynienia z protokołem innym niż alien. Na razie - roboczo nazwijmy go alienB alien bis lub po prostu serve (zamiast call).
- Wprowadźmy tez alien zamiast call. Już jest raise zamiast call (dynamicznie szukamy handlera).
- Uwaga o funkcjach. Nieistotność definicji.