SPITBOL compiler
Encyclopedia
SPITBOL is a compiled
implementation of the SNOBOL4
language
. Originally targeted for the IBM
System/360
and System/370
family of computer
s, it has now been ported to most major microprocessors including the SPARC
. It was created by Robert Dewar
and Ken Belcher, who were then at the Illinois Institute of Technology
.
Prior to the development of SPITBOL, SNOBOL4 was thought to be slow, memory-intensive, and impossible to compile due to its dynamic nature. While delayed binding
prevents everything from being determined at compile time, SPITBOL is very clever about making decisions as early as possible. SNOBOL4 programs running under SPITBOL are amazingly fast. Notable is the SPITBOL garbage collector
which runs extremely well under the most constrained conditions.
Recent versions of the SPITBOL compiler are available. Since 2001 the source code for the original SPITBOL 360 compiler has been made available under the GNU General Public License
.
MACRO SPITBOL is an implementation of SPITBOL written in the 1970s by Robert B. K. Dewar and Anthony P. McCann. MACRO SPITBOL is coded in MINIMAL, an assembly language for an abstract machine. The instruction set is carefully defined to allow some latitude in its implementation, so that hardware operations favorable to string processing can be exploited.
An implementation of MINIMAL that was designed for interpretation on microcomputers was done by translating MINIMAL into MICRAL using a translator that was itself implemented in SPITBOL. The MICRAL version of MACRO SPITBOL, together with the MICRAL interpreter ran in under 40K bytes.
This extreme object code compression of MICRAL is achieved using a set of machine code macro substitutions that minimizes the space required for the object code and macro table. The complexity of known algorithms for an optimal solution to this problem are high, but efficient heuristics attain near-optimal results.
The source code for MACRO SPITBOL was released under the GNU General Public License
on April 17, 2009.
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
implementation of the SNOBOL4
SNOBOL
SNOBOL is a generic name for the computer programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4...
language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
. Originally targeted for the IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
System/360
System/360
The IBM System/360 was a mainframe computer system family first announced by IBM on April 7, 1964, and sold between 1964 and 1978. It was the first family of computers designed to cover the complete range of applications, from small to large, both commercial and scientific...
and System/370
System/370
The IBM System/370 was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family. The series maintained backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the...
family of computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
s, it has now been ported to most major microprocessors including the SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
. It was created by Robert Dewar
Robert Dewar
Robert Berriedale Keith Dewar is an American computer scientist.-Education:Dewar obtained his B.S. from the University of Chicago in 1964, and his Ph.D., also from the University of Chicago, in 1968.-Career:...
and Ken Belcher, who were then at the Illinois Institute of Technology
Illinois Institute of Technology
Illinois Institute of Technology, commonly called Illinois Tech or IIT, is a private Ph.D.-granting university located in Chicago, Illinois, with programs in engineering, science, psychology, architecture, business, communications, industrial technology, information technology, design, and law...
.
Prior to the development of SPITBOL, SNOBOL4 was thought to be slow, memory-intensive, and impossible to compile due to its dynamic nature. While delayed binding
Name binding
In programming languages, name binding is the association of objects with identifiers. An identifier bound to an object is said to reference that object. Machine languages have no built-in notion of identifiers, but name-object bindings as a service and notation for the programmer is implemented...
prevents everything from being determined at compile time, SPITBOL is very clever about making decisions as early as possible. SNOBOL4 programs running under SPITBOL are amazingly fast. Notable is the SPITBOL garbage collector
Garbage collection (computer science)
In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...
which runs extremely well under the most constrained conditions.
Recent versions of the SPITBOL compiler are available. Since 2001 the source code for the original SPITBOL 360 compiler has been made available under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
.
MACRO SPITBOL is an implementation of SPITBOL written in the 1970s by Robert B. K. Dewar and Anthony P. McCann. MACRO SPITBOL is coded in MINIMAL, an assembly language for an abstract machine. The instruction set is carefully defined to allow some latitude in its implementation, so that hardware operations favorable to string processing can be exploited.
An implementation of MINIMAL that was designed for interpretation on microcomputers was done by translating MINIMAL into MICRAL using a translator that was itself implemented in SPITBOL. The MICRAL version of MACRO SPITBOL, together with the MICRAL interpreter ran in under 40K bytes.
This extreme object code compression of MICRAL is achieved using a set of machine code macro substitutions that minimizes the space required for the object code and macro table. The complexity of known algorithms for an optimal solution to this problem are high, but efficient heuristics attain near-optimal results.
The source code for MACRO SPITBOL was released under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
on April 17, 2009.