STOIC ( Stack - O riented Interactive Compiler ) est un langage de programmation des années 1970, une variante de Forth .
Histoire
STOIC a débuté au MIT et au Harvard Biomedical Engineering Centre à Boston (qui fait partie de la division Santé, Science et Technologie) et a été écrit au milieu des années 1970 par Jonathan Sachs . Jonathan Sachs est devenu le principal programmeur de Lotus Development et a écrit la première version de Lotus 1-2-3 .
La version originale de STOIC a été écrite sur un mini-ordinateur Data General Nova et assemblée pour le 8080. STOIC était doté de son propre système de fichiers primitif mais efficace, et pouvait être démarré avec peu de travail préliminaire sur n'importe quel microprocesseur basé sur 8080 avec 24 Ko de mémoire et une machine Teletype . Après que la source ait été publiée dans le domaine public, le système a ensuite été modifié pour fonctionner sous CP/M .
STOIC était considéré à l'époque comme étant conceptuellement similaire à FORTH dans l'utilisation d'un vocabulaire extensible de « mots ». STOIC est en fait un dialecte rationnel et plus cohérent de FORTH . Le système était remarquable à l'époque pour avoir un assembleur intégré, un package à virgule flottante, un gestionnaire d'interruption et un éditeur d'affichage (similaire à l'éditeur d'affichage Nova). La source et la documentation ont été distribuées pendant de nombreuses années par le CP/M Users Group. En tant que système de développement pratique, il se comparait favorablement aux implémentations contemporaines de FORTH, et a continué à être largement utilisé pour le développement d'applications. Une version portable écrite en C a été placée dans le domaine public et également distribuée par le CP/M Users Group (Royaume-Uni).
Plus tard, STOIC a été porté sur le DEC VAX sous VMS par Roger Hauck au Smithsonian Institution Astrophysical Observatory (SAO) et a été distribué par DECUS . Il a été distribué au moins jusqu'à l'automne 1985.
Fonctions
Contrairement aux autres variantes de FORTH, STOIC était intégré aux E/S VMS et aux services système plutôt que d'utiliser les E/S de disque FORTH. Il prenait également en charge le code machine (appels en ligne et de sous-programmes). STOIC prenait en charge les opérations à virgule flottante en double précision à l'aide d'une pile.
Programmes connexes
Selon certains commentaires de la liste de diffusion, STOIC a été écrit à l'origine par Jonathan Sachs en 1975. Un autre programme nommé LSE a été écrit par Robert Goeke, qui a incorporé certaines des idées de STOIC (une première version aurait pu s'appeler STOIC ).
Une variante auto-outillée de LSE, LSE64 (Laboratory Software Environment), est maintenue par John Doty.
Une version de STOIC est connue comme étant un « compilateur interprétatif orienté pile », mais on ne sait pas exactement laquelle est laquelle.
STOICAL (STack Oriented Interactive Compiler Adapted to Linux) a été inspiré par STOIC. Au début des années 1980, Ernest E. Bergmann a tenté de réincarner STOIC dans un langage baptisé PISTOL (Portably Implemented STack Oriented Language) ; ibid.