Quelle mise en œuvre de Forth à utiliser pour apprendre Forth?
je veux commencer à apprendre à de l'avant (comme dans le Débordement de la Pile question Est-il pratique à apprendre et à utiliser de Suite? ). Je vois qu'il y a beaucoup d'implémentations . Je voudrais utiliser un
- ANS 1994 version compatible (si raisonnable, mais le respect de la norme pourrait être bon)
- petit et mise en œuvre compacte, Je ne veux pas D'un système D'exploitation complet.
- Windows
- facile à utiliser, je suis nouveau à la Suite ;-)
quelle application particulière peut-on recommander?
7 réponses
Win32Forth est vraiment fantastique, comme mentionné ci-dessus. Il dispose d'un environnement de développement intégré agréable et est une mise en œuvre assez moderne qui semble correspondre très bien avec les normes ainsi que l'inclusion de certaines fonctionnalités plus expérimentales mais largement acceptées.
j'utilise Gforth , mais j'utilise aussi Vim pour modifier les fichiers source. :) Gforth est bon et "classique" dans la mesure où les caractéristiques soutien. Il vous donne une très" vieille école " pour l'expérience sans être trop excentrique à utiliser. (Certains Forths libres font des choses étranges avec leurs lignes de commande et tels-J'utilise le "départ" de Brodie comme le modèle de la façon dont un interprète Forth devrait se comporter.)
j'ai regardé SwiftForth , qui est un très beau "high tech" pour le système qui va bien au-delà de ce que les Forths classiques offrent en termes de caractéristiques de la langue et met vraiment en avant dans le moderne monde de programmation. Si vous voulez réellement faire des programmes de Forth professionnellement, SwiftForth a l'air de pouvoir gérer à peu près tout ce que vous voulez en faire.
il y a quelque temps j'ai évalué 4ème , une mise en œuvre de Forth . Je pense qu'il répond à tous à vos exigences. Par exemple, le compilateur n'est que de 61 Ko. Il est également un support complet pour les nombres à virgule flottante, important si vous voulez essayez de l'utiliser à des fins techniques/scientifiques.
4ème fonctionne sur la plupart des systèmes d'exploitation, y compris MS-DOS, MS-Windows (à la fois 16 bits et 32 bits), Linux, cohérent , AIX , SunOS , BOS , BSD, Mac OS X, BeOS , RISC OS , etc. Télécharger (programme d'installation de Windows, 1,5 MO, comprend le manuel). Manual (PDF, 1,1 Mo).
il y a une communauté active centrée autour du groupe Google 4ème compilateur . Par exemple aujourd'hui j'ai reçu deux messages.
veuillez noter que dans la 4ème vous ne pouvez pas définir vos propres mots de définition (mots qui s'exécutent au moment de la compilation). Ce n'est pas grave limitation, à moins que vous ne vouliez couvrir les fonctionnalités avancées de Forth.
pour vous lancer (comme ce n'est pas très clair à partir du manuel ou de la compilation interactive), après l'installation, copiez le compilateur, 4th.exe
, dans un dossier vide, faites deux fichiers dans ce répertoire, HelloWorld.bat
et HelloWorld.4th
, et courir HelloWorld.chauve-souris:
HelloWorld.chauve-souris:
4th.exe cx HelloWorld.4th
pause
HelloWorld.4e:
: hello ." Hello from XYZ!" cr cr ;
hello
SwiftForth . Ce n'est pas consciemment petit et compact; il se trouve qu'il l'est. Il est facile à utiliser (localisez WHEDIT , un plus beau que les mots habituels), est livré avec deux livres, et a une excellente liste de diffusion avec plus d'une décennie d'archives. La version d'évaluation ne vous permettra pas de compiler des applications clés en main ou des DLLs; elle fournit toujours une excellente console pour un élève, et peut prendre en charge les scripts de la manière habituelle. Quick Windows exemples:
: sleep-monitor ( -- )
HWND_BROADCAST WM_SYSCOMMAND SC_MONITORPOWER 2 SendMessage drop ;
library dnsapi.dll
( ... DLL imports, constants ... )
variable results
: DnsQuery ( z -- res )
DNS_TYPE_A 0 NULL results NULL DnsQuery_UTF8 ;
: resolves? ( z -- f )
DnsQuery if false exit then
results @ DnsRecordListFree true ;
\ an example use of the dialog compiler
\ this compiled DSL is an example of something that 4th
\ precludes with its "not ... serious limitation"
DIALOG (HELLO-ABOUT)
[MODELESS " About Hello" 10 10 120 70
(FONT 8, MS Sans Serif) ]
\ [class text id x y sx xy ]
[CTEXT " HELLO" -1 10 10 100 10 ]
[CTEXT " (C) 1997 Forth, Inc." -1 10 25 100 10 ]
[CTEXT " http://www.forth.com" -1 10 35 100 10 ]
[DEFPUSHBUTTON " OK" IDOK 35 50 50 14 ]
END-DIALOG
je me rends compte qu'ils ne répondent peut-être pas à toutes vos exigences, mais les langues de type Forth suivantes pourraient également vous intéresser du point de vue de l'apprentissage.
de plus, j'ai trouvé le blog re-Factor une bonne introduction à Factor.
si vous pouvez trouver une copie de L'ancien polyFORTH de FORTH Inc, et un vieux x86 qui peut l'exécuter, c'est le langage utilisé dans L'original de Leo Brodie"Starting FORTH". C'est un FORTH propre et très robuste.