LEM

Z Lem
Wersja AndrzejSalwicki (dyskusja | edycje) z dnia 11:38, 21 cze 2018

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Skocz do: nawigacji, wyszukiwania

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.