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 |
STOIC (Stack-Oriented Interactive Compiler) is a 1970s programming language, a variant of Forth.
STOIC 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]
STOIC, 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.
According 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.
Digital Equipment Corporation, using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president until he was forced to resign in 1992, after the company had gone into precipitous decline.
Forth is a stack-oriented programming language and interactive integrated development environment designed by Charles H. "Chuck" Moore and first used by other programmers in 1970. Although not an acronym, the language's name in its early years was often spelled in all capital letters as FORTH. The FORTH-79 and FORTH-83 implementations, which were not written by Moore, became de facto standards, and an official technical standard of the language was published in 1994 as ANS Forth. A wide range of Forth derivatives existed before and after ANS Forth. The free and open-source software Gforth implementation is actively maintained, as are several commercially supported systems.
In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:
VAX is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The VAX-11/780, introduced October 25, 1977, was the first of a range of popular and influential computers implementing the VAX ISA. The VAX family was a huge success for DEC, with the last members arriving in the early 1990s. The VAX was succeeded by the DEC Alpha, which included several features from VAX machines to make porting from the VAX easier.
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers. During the 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide.
In computing, Xyzzy is sometimes used as a metasyntactic variable or as a video game cheat code. Xyzzy comes from the Colossal Cave Adventure computer game, where it is the first "magic string" that most players encounter.
A network operating system (NOS) is a specialized operating system for a network device such as a router, switch or firewall.
The DEC Text Processing Utility is a dedicated programming language developed by Digital Equipment Corporation (DEC) to easily create multi-functional text editors.
IDL, short for Interactive Data Language, is a programming language used for data analysis. It is popular in particular areas of science, such as astronomy, atmospheric physics and medical imaging. IDL shares a common syntax with PV-Wave and originated from the same codebase, though the languages have subsequently diverged in detail. There are also free or costless implementations, such as GNU Data Language (GDL) and Fawlty Language (FL).
A fat binary is a computer executable program or library which has been expanded with code native to multiple instruction sets which can consequently be run on multiple processor types. This results in a file larger than a normal one-architecture binary file, thus the name.
A COM file is a type of simple executable file. On the Digital Equipment Corporation (DEC) VAX operating systems of the 1970s, .COM
was used as a filename extension for text files containing commands to be issued to the operating system. With the introduction of Digital Research's CP/M, the type of files commonly associated with COM extension changed to that of executable files. This convention was later carried over to DOS. Even when complemented by the more general EXE file format for executables, the compact COM files remained viable and frequently used under DOS.
tin is an open-source, text-based, threaded newsreader, used to read and post messages on Usenet, the worldwide distributed discussion system.
VAXELN is a discontinued real-time operating system for the VAX family of computers produced by the Digital Equipment Corporation (DEC) of Maynard, Massachusetts.
A source-to-source translator, source-to-source compiler, transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent source code in the same or a different programming language. A source-to-source translator converts between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. For example, a source-to-source translator may perform a translation of a program from Python to JavaScript, while a traditional compiler translates from a language like C to assembly or Java to bytecode. An automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations or language constructs.
MINCE is a text editor, originally created for 8080-based microcomputers running the CP/M operating system. Later versions of MINCE were available for GEMDOS on the Atari ST, VAX/VMS, RSX-11, and various flavors of Unix.
Synergy DBL is a compiled, imperative programming language designed for business use. The language was originally called DBL; later it was referred to as Synergy Language; as of 2012 the official name is Synergy DBL. It is based on Digital Equipment Corporation’s DIBOL programming language.