J'ai commencé à lire Thinking Forth. Dans le livre, l'auteur mentionne un système de modules à trois lignes avec une référence aux actes d'une conférence Forth. Here's a PDF containing a description of the module system à partir de la page 14, (132 tel qu'imprimé).Comment fonctionne ce système de module Forth à trois lignes?
Voici les instructions sur la façon d'utiliser les trois mots définis INTERNAL
, EXTERNAL
et MODULE
.
Un module est une partie d'un programme entre les mots INTERNAL et MODULE. Les définitions des constantes, variables et routines locales au module sont écrites entre les mots INTERNAL et EXTERNAL. Les définitions qui doivent être utilisées à l'extérieur du module sont écrit entre les mots EXTERNAL et MODULE. [Les variables locales pour une routine ] sont définies entre INTERNAL et EXTERNAL. La routine qui les référence est définie entre EXTERNAL et MODULE.
Et voici le code lui-même:
: INTERNAL (--> ADDR) CURRENT @ @ ;
: EXTERNAL (--> ADDR) HERE ;
: MODULE(ADDRl ADDR2 -->)PFA LFA ! ;
Je lis le livre pour les idées sur la façon d'écrire des logiciels en général, plutôt que de la programmation dans une mise en oeuvre particulière de Forth, je Je ne suis pas familier avec les mots intégrés utilisés dans le code, mais je suis curieux au sujet de ce système de module. Quelqu'un peut-il expliquer comment cela fonctionne?
Dans un système Forth moderne, une approche possible consiste à compiler dans différentes listes de mots et à modifier l'ordre de recherche en conséquence, comme le [module-paquet par Ulrich Hoffmann] (https://theforth.net/package/modules/current-view /modules.fs) – fiz