2009-11-13 8 views
1

Les langages à base de pile ont-ils un concept de portée? Il me semble que si les paramètres de fonction sont placés sur la pile avant que la fonction ne s'exécute, ils le font d'une manière peu orthodoxe. Ou, je pourrais essayer d'imposer une abstraction qui ne correspond pas tout à fait.Les langages à base de pile ont-ils un concept de portée?

Répondre

3

Scope est un concept appliqué aux langages avec des variables nommées. Dans un langage purement basé sur une pile, il peut n'y avoir aucune variable nommée et par conséquent le concept de portée ne s'applique pas. Les langages à base de pile utiles ont des variables nommées, et peuvent certainement incorporer le concept de portée.

Comme exemple concret, Wikipedia a ceci à dire au sujet de Forth:

Les objets de données définis par ces mots et similaires sont de portée mondiale. La fonction fournie par les variables locales dans d'autres langages est fournie par la pile de données dans Forth (bien que Forth ait aussi de vraies variables locales). Le style de programmation Forth utilise très peu d'objets de données nommés par rapport à d'autres langages; Généralement, ces objets de données sont utilisés pour contenir des données qui sont utilisées par un certain nombre de mots ou de tâches (dans une implémentation multitâche).