STOIC (Stack-Oriented Interactive Compiler) is a 1970s programming language, a variant of Forth.
Paradigm | concatenative (stack-based), procedural |
---|---|
Designed by | Harvard-MIT |
Developer | Jonathan Sachs |
First appeared | 1975/1976 |
OS | OpenVMS, CP/M, Data General Nova |
Influenced by | |
RPN, Forth |
History
editSTOIC started out at the MIT and Harvard Biomedical Engineering Centre in Boston, (part of the Health, Science and Technology Division) and was written in the mid 1970s by Jonathan Sachs.[1] Jonathan Sachs went on to be the principal programmer of Lotus Development and wrote the first version of Lotus 1-2-3.
The original version of STOIC was written on a Data General Nova minicomputer and cross-assembled for the 8080. STOIC came with its own primitive but effective file system, and could be booted up with little preliminary work on any 8080-based microprocessor with 24K of memory and a Teletype machine. After the source was released into the public domain, the system was subsequently modified to run under CP/M.[citation needed][2]
STOIC was said at the time[3] to be conceptually similar to FORTH in the use of an extensible vocabulary of "words".[4] STOIC is actually a rational, and more consistent, dialect of FORTH [citation needed]. The system was remarkable at the time for having a built-in assembler, floating-point package, interrupt handler, and display editor (similar to the Nova display editor).[5] The source, and documentation, was distributed for many years by the CP/M Users Group.[6] As a practical development system, it compared favourably with contemporary implementations of FORTH,[7] and went on to be used extensively for the development of applications. A portable version written in C was placed in the public domain and also distributed by the CP/M Users Group (UK).
Later, STOIC was ported to the DEC VAX under VMS by Roger Hauck[8] at Smithsonian Institution Astrophysical Observatory (SAO) and was distributed by DECUS.[9][10] It was distributed at least through fall 1985.[11]
Functions
editSTOIC, unlike other FORTH variants, was integrated with the VMS I/O and system services rather than using the FORTH disk I/O. It also supported machine code (both inline and subroutine calls). STOIC supported double precision floating point operations using a stack.
Related programs
editAccording to some mailing list comments,[12] STOIC was originally written by Jonathan Sachs in 1975. A different program named LSE was written by Robert Goeke, which incorporated some of the ideas of STOIC (an early version may have been called STOIC).
An autotooled variant of LSE, LSE64 (Laboratory Software Environment), is maintained by John Doty.
One version of STOIC is noted as being "Stack Oriented Interpretive Compiler", but it is unclear which is which.[13]
STOICAL (STack Oriented Interactive Compiler Adapted to Linux) was inspired by STOIC.[14] In the early 1980s there was an attempt to reincarnate STOIC by Ernest E. Bergmann in a language dubbed PISTOL (Portably Implemented STack Oriented Language); ibid.
See also
editReferences
edit- ^ Oral History Interview of Johnathan Sachs archived at the Charles Babbage Institute
- ^ Richard H. Mossip, The Stoic Language, Microsystems, Sep-Oct 1982, pp 90-95
- ^ Notes from the original CP/M Users Group Release[citation needed]
- ^ quoted in CPMUGUK, the Journal of the UK CP/M Users Group Nov 1980[citation needed]
- ^ from the Documentation for Stoic, Feb 1977[citation needed]
- ^ Hirst.rx (April 3, 1984). "Another File from England". Archived from the original on December 1, 2008. Retrieved 2007-11-26.
- ^ Go Forth, be STOIC, in the Journal of the UK CP/M User Group Nov 1980[citation needed]
- ^ Andrea Levene (May 7, 2004). "Roger Hauck, 65; designed software for space program". Boston Globe.
- ^ Michael Coughlin. "Re: Forth family tree (was: The future of Forth)". comp.lang.forth newsgroup.
- ^ "UNTIL Reference Guide". July 1, 1995.
- ^ "VAX-SPLIB-1 – The Special VAX Library Collection 1". 1988–1989. Archived from the original on 2007-09-27.
- ^ John Doty; Michael Coughlin (Jun 26, 2004). "The future of Forth". comp.lang.forth newsgroup.
- ^ "The Explosive Transient Camera: A Wide-field Sky Monitor of Celestial Optical Flashes" (PDF). NTRS NASA. MIT. 1 October 1991. Retrieved 20 June 2016.
- ^ "STack Oriented Interactive Compiler Adapted to Linux". STack Oriented Interactive Compiler Adapted to Linux. 20 June 2016. Retrieved 20 June 2016.