2010-07-08 11 views
23

Mam zamiar opracować nowy system Forth, mający na celu ułatwienie rozwoju gry na jednej lub ewentualnie kilku platformach konsol retro. Jestem początkującym początkującym i potrzebuję twojej pomocy w podjęciu decyzji, z której bazy kodu zacznie się przenosić.Które z poniższych części zaczynają się przesyłać?

Po prostu szukam zalet/wad poszczególnych Forthów względem siebie. Czytałem źródło do JonesFORTH, jak również zarówno pochwałę i krytykę tego, jak i dyskusje na temat ANS, i niestety zostały pozostawione raczej zdezorientowane. Społeczność Fortha, z tego, co wiem, wydaje się dość brutalnie podzielona zgodnie z kwestią zgodności ze standardami, z bardzo dobrymi argumentami obu obozów co do tego, dlaczego standard jest zarówno dobry, jak i straszny. Nie mogę jednak znaleźć dobrych praktycznych porad na temat tego, co dokładnie zmieniają standardy, poza ogólnym poczuciem, że sprawia to, że sprawy są bardziej skomplikowane i rozdęte, niż być może muszą.

Mam nadzieję, że ułatwi to programistów i hobbystów, którzy są obecnie przerażeni perspektywą rozwoju w montażu lub C, więc skłaniam się ku prostszemu Forthowi, ale ja naprawdę nie wiem wystarczająco dużo o Forth jeszcze podjąć świadomą decyzję.

Odpowiedz

6

Jestem rodzaju, gdzie jesteś teraz. Od pewnego czasu od czasu do czasu czytam w Forth i myślę, że ma duży potencjał - może także do pisania scenariuszy. Jednak nie jestem w pobliżu autorytetu, ale tu są moje myśli.

Po pierwsze, wydaje się, że Forth jest najlepszym programowalnym językiem programowania - nawet większym niż seplenienie. W tym celu nie jestem pewien, ile C lub zespołu potrzebujesz do kodowania. Byłem bardziej skłonny do rozwijania słowników w samym Forth. W końcu tak powinno się go używać.

Po drugie, z wdrożonych przeze mnie wdrożeń, najbardziej lubię Gfortha i Pfortha.

Które z nich używasz?

Wreszcie, tutaj jest lista Internecie naprzód czytanie odkryłem:

  • Starting Forth
  • Thinking Forth
  • Forth Primer
  • Forth Language
  • Forth Tutorials
  • Pforth Tutorial
  • Gforth Manual
  • Begin Forth
  • Forth Links
  • WikiForth
  • OLPC Forth
  • Lets Build a Compiler
  • Jones Forth
  • Znalazłeś jakieś inne?

    4

    Podstawowy system Forth jest bardzo mały i można go szybko wdrożyć. Myślę, że następująca strona będzie dla Ciebie bardzo przydatna: "A sometimes minimal Forth compiler and tutorial for Linux/i386 systems". Jest to liniowy samouczek dotyczący ładowania systemu Fortha!

    Pamiętaj, aby zaimplementować słowa definiujące (wyrazy wykonujące w czasie kompilacji).Stąd pochodzi siła Fortha; dzięki czemu jest naprawdę rozszerzalny.

    Tak naprawdę tego nie wypróbowałem, ale kiedyś zdecydowałem się na bigFORTH, ponieważ jest to jeden z niewielu Forthów z licencją open source. Jest również aktywnie utrzymywany; na przykład na początku tego roku ukazało się wydanie.

    W ciągu ostatnich kilku lat zebrałem a set of annotated links about Forth. Niektóre z nich trudno znaleźć.

    Jeśli chodzi o standardy, rozmowa: to jest 20-letnia dyskusja. Myślę, że ważniejsze jest, aby coś zrobić zamiast mówić: zaimplementować oprogramowanie, dostarczyć zabójczych przykładów, napisać dokumentację, zaprosić innych do udziału, itd. Charles Moore od tego czasu przeprowadził i wykonał Forth chips, machineForth i ColorFORTH. Jeśli wyszukasz "machineForth" i "ColorFORTH" w liście linków z przypisami, można znaleźć interesujące artykuły i oświadczenia. Charles Moore ma teraz także numer blog.

    2

    Polecam polowanie na EForth, ten, który napisał Ting. Rodzaj nowoczesnego Wyobraź sobie w pewien sposób. Ma jądro napisane w C, ale jądra/systemy eForth zostały już przeniesione na wiele platform/cpus większość ma jądra/rdzenie zespołu. Jest jednak coś fajnego, zwanego Czynnikiem. Zaczęło się jako "tylko dla gier" i trafiło do dzikiego i zabawnego kąta języka programowania

    2

    Jedną rzeczą, którą możesz chcieć wypróbować jako pierwszy krok, jest napisanie interpretera Fortha w języku wyższego poziomu, takim jak Java, C++, Python itp. Brakować będzie głównych zalet Forth na poziomie maszynowym: szybkość i zwartość, ale pisanie własnej maszyny wirtualnej pozwoli lepiej zrozumieć różne typy wątków itp. w różnych smakach Fortha.

    Większość nowych implementacji Forth jest w zasadzie uruchamiana przez patrzenie na procesor jako maszynę wirtualną, tak więc tworzenie wyraźnej maszyny wirtualnej nie jest zmarnowane, gdy nadejdzie czas przejścia z interpretowanej wersji do wersji kodu maszynowego. Ponadto będziesz mieć projekt własnego kodu, który będzie zawierał odniesienia podczas budowania wersji maszyny.

    Jeśli jednak naprawdę dobrze sobie radzisz z kodem maszynowym, prawdopodobnie możesz pominąć powyższy krok i po prostu przesłać jeden ze standardów bezpośrednio.

    Jeśli chodzi o standardy, wybrałbym pewien standard, ale na początku pozostanie on na minimalnym poziomie. Jeśli chcesz wykroczyć poza standard w kategoriach rzeczy innych niż słowa zdefiniowane przez użytkownika, zawsze możesz rozwijać się w kierunku standardowym lub niestandardowym - zgodnie z potrzebami implementacyjnymi. Jedną z najfajniejszych rzeczy o Forth jest to, że jest tak proste, że możesz ponownie napisać cały kompilator łatwiej niż możesz ponownie napisać część kodu Fortha, na którym będziesz go uruchamiał, lol.

    1

    Gameduino, platforma do tworzenia gier na Arduino, ma minimalną czwartą procesor (J1) działającą wewnątrz.

    Oprócz kodu źródłowego Verilog J1 forth, istnieje również symulator komputera, kompilator napisany w google go, here przez Serge Zaitsev.

    J1 jest już zaimplementowany w FPGA Xilinx. Możliwe jest również "symulowanie" J1 CPU na dowolnym nowoczesnym MCU.

    0

    Jeśli chodzi o kompatybilność z ANSI, jeśli używasz Forth do swojej aplikacji, możesz pominąć wszystko, czego nie potrzebujesz, lub nawet zmienić rzeczy, których nie lubisz. Pośrednie gwintowane Forthy należą do najbardziej kompaktowych na 16 bitowych procesorach (nie więcej na 64-bitterach). Jest to prawdopodobnie droga.

    Słynność pośrednich gwintowanych Fortha o nazwie FIG-Forth nadal jest materiałem wychowawczym. jonesforth jest przykładem Fortha, który działa w tym samym duchu. Sam jestem autorem cifortha, który był jedną z inspiracji dla jonesforth i waszej przyszłości, prawdopodobnie warta jest waszej chwili, ponieważ próbuje wyjaśnić powody projektowania rzeczy takimi, jakimi są. Ting's eforth (all the place) i Camelforth to również dobre przykłady. gforth z objazdem przez c, a jego masa jest mniej wartościowa dla ciebie.

    Jedna ogólna wskazówka, jeśli potrzebujesz słowa kodowego (kodowanego w asemblerze, a nie w Forth, najniższy poziom), lepiej je wykraść, a następnie wprowadzić ponownie. Kod na przykład podział na 32 bitów na 16 bitów na wszystkich, ale gdzieś są najzwyklejsze procesory. Zbierz kilka Forthów, które są zaimplementowane na procesorze, z którego korzystasz.

    Musisz wybrać procesor, który będzie Cię blokował. Możesz po prostu użyć jednego z Camelforthów (ponieważ jest dostępny dla najpopularniejszych procesorów) i zacząć od aplikacji. Jeśli nie jesteś całkiem szczęśliwy, możesz go zmodyfikować, aby stać się swoim własnym Forth. Jeśli korzystasz z procesora 6809 lub Renesas lub 16-bitowego procesora i86, możesz użyć mojego cifortha jako punktu wyjścia.

    Powiązane problemy