atarionline.pl Forth - sensowne środowisko pracy, przemyślenia - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorCosi
    • CommentTime16 Nov 2023
     
    Dorzucę komentarz do Twojego komentarza :-)

    Filozofia Fortha sprowadza się właściwie do tego, że tworzysz swój własny język na potrzeby konkretnego problemu (podobną strategię przyjął zresztą Racket). Budujesz kolejne warstwy abstrakcji, przystosowane do Twoich potrzeb – np. "goły" Forth nie ma mechanizmów GC, nie ma metod programowania obiektowego, ale to wszystko można zaimplementować, jeżeli ktoś ma taki kaprys; robi się nam wtedy język wysokiego poziomu, ale "skrojony na wymiar".

    Jeżeli chodzi o GUI, dowiązania do popularnych bibliotek itd., to we wszystkich językach (oprócz może C, C++ i Javy) polega to na wykorzystaniu dynamicznych bibliotek napisanych w którymś z ww. języków. Tak jest na przykład z Pythonem, który ma imponujący ekosystem narzędzi, ale te bardziej wymagające nie są przecież napisane w Pythonie :-)
    Gforth pozwala na korzystanie z zewnętrznych bibliotek i w sumie nic nie stoi na przeszkodzie, żeby napisać dla niego np. interfejs do Qt5. Atarowskie Forthy oczywiście nie mają czegoś takiego, ale za to pozwalają na pisanie wstawek asemblerowych, które w małej skali dają podobne możliwości.

    Forth na pewno nigdy nie będzie (i raczej nie bardzo był w swoich czasach) używany do tworzenia produkcyjnych aplikacji, ale to wynika raczej z czegoś innego: po pierwsze, jest praktycznie niszą w niszy, nie ma solidnego repozytorium pakietów "do wszystkiego", nie stoi za nim żadna duża firma itd. Po drugie, utrzymanie dużej bazy kodu bez solidnych narzędzi typu debuggery, lintery itp. to dla każdej firmy byłoby samobójstwo.

    To tyle; nie wiem właściwie, co konkretnie chciałem udowodnić – chyba nic :D
    • 2: CommentAuthorbartgo
    • CommentTime4 Jan 2024 zmieniony
     
    Udało się uruchomić pod APX Extended Fig-Forth Rev. 2: "6502 DISASSEMBLER" (autor: JOHN MATTES, Antic 3 i 4 / 1984). Wydaje się działać w większości przypadków, tutaj deasembluje ! oraz C! (Forth-owy DPOKE i POKE).

    Kod na GH: ->link<-

    Często wynik deasemblacji jest wątpliwy - tu muszę podszkolić się z asemblera, żeby stwierdzić czy są to kompromitujące błędy, czy niekoniecznie (autor przypomina, że w pamięci siedzi kod Fortha, dane itp - nie musi to być czysty kod maszynowy i wtedy deasemblacja wariuje). Nie jest to takie oczywiste i nieco studzi entuzjazm (no i dobrze, na teren fantazji wkracza rzeczywistość).

    Nie są jasne skróty trybów adresowania ale rozpracuję z Ruszczycem i innymi oraz opiszę w komentarzach do kodu, używa się tam takich pięknych skrótów:
    ,X
    ,Y
    ,X (drugi raz to samo?)
    )Y
    ..
    ##
    0P
    X)
    .Y
    ()
    .A
    IM
    RE

    Następne zadania do ogarnięcia: diff między ekranami, tuningi edytorów, prosty debugger "krokowy" (może się nie udać w APX Forth, zobaczymy).
    • 3:
       
      CommentAuthorKaz
    • CommentTime8 Jan 2024 zmieniony
     
    Tak przy okazji, znalazłem wśród programów, które w emulatorze Atari800Win napisał Piotr Zyśk, są dwa w Forth. Może Ci się do czegoś przyda.
    • 4: CommentAuthorbartgo
    • CommentTime9 Jan 2024
     
    A miałem iść spać...
    • 5: CommentAuthorbartgo
    • CommentTime9 Jan 2024 zmieniony
     
    (wydmuchując chmurę dymu fajkowego)

    Drogi Watsonie, wnioskuję że Piotr zainteresował się Forth-em w 2012 roku, eksperymentował z kodem z Tajemnic Atari, udało Mu się uruchomić Edytor Wprowadzania. Najwyraźniej działał z asemblerem Forth oraz słowami graficznymi z wbudowanej biblioteki. Użyty Forth to oczywiście APX Extended Fig-Forth z książki Ruszczyca oraz kursu Rolanda Pantoły.

    Piotr pracował z klasycznym edytorem Forth'a (wbudowanym, liniowym), więc mógł się nieco umęczyć...

    Pliki a8s to zrzuty pamięci Atari800Win - źródeł w oryginalnej postaci nie widać, tylko dekompilacja pokazuje ich zawartość (nie pokaże bez dodatkowych narzędzi słów typu "primitives", pisanych w asemblerze Forth). Jeśli faktycznie Piotr napisał kilka słów w asemblerze Forth (coś z funkcji trygonometrycznych), to czapki z głów!

    Jeśli Piotr się nie zniechęcił do końca to być może zainteresuje Go już bliska reedycja "Poznajemy Forth" z interesującymi dodatkami, również związanymi z emulacją...

    Hm, hm.
    • 6:
       
      CommentAuthorKaz
    • CommentTime9 Jan 2024
     
    Bardzo ładna dedukcja drogi Sherlocku :)
    A to mi przypomina taki oto obrazek z Komputera 5/1988 (rysunek Piotra Kakieta towarzyszył opisowi algorytmu bisekcji):