Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
SPITBOL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Implementation of the SNOBOL4 programming language.}} '''SPITBOL''' ('''Sp'''eedy '''I'''mplemen'''t'''ation of SNO'''BOL''') is a [[compiler|compiled]] implementation of the [[SNOBOL|SNOBOL4]] [[programming language]]. Originally targeted for the [[IBM]] [[System/360]] and [[System/370]] family of computers, 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, [[random access memory|memory]]-intensive, and impossible to compile due to its dynamic nature. While delayed [[name binding|binding]] prevents everything from being determined at compile time, SPITBOL adopts various strategies for making decisions as early as possible. 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]].<ref>[http://www.snobol4.com/spitbol360/ Spitbol 360 source and Documentation]</ref> MACRO SPITBOL is an implementation of SPITBOL written in the 1970s by [[Robert Dewar]] and Anthony P. McCann.<ref>{{cite journal |title=MACRO SPITBOL - a SNOBOL4 Compiler |author1=Robert B. K. Dewar |author-link1=Robert Dewar |author2=Anthony P. McCann |journal=Software: Practice and Experience |volume=7 |pages=95β113 |year=1977 |doi=10.1002/spe.4380070106}}</ref> 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.<ref>{{cite book |title=MINIMAL - A Machine Independent Assembly Language |author1=Robert B. K. Dewar |author-link1=Robert Dewar |author2=Anthony P. McCann |publisher=Courant Institute of Mathematical Sciences |series=Computer Science Department Technical Report |volume=12 |year=1979}}</ref> 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.<ref name="MicroSpitbol">{{cite book | title = MICRO SPITBOL | author1 = Robert B. K. Dewar | author-link1 = Robert Dewar | author2 = Martin Charles Golumbic | author-link2 = Martin Charles Golumbic | author3 = Clinton F. Goss | publisher = Courant Institute of Mathematical Sciences | series = Computer Science Department Technical Report | volume = 11 |date=August 2013 | orig-year = First published October 1979 | arxiv = 1308.6096| bibcode = 2013arXiv1308.6096D }}</ref> 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.<ref>{{cite journal |author1=Martin Charles Golumbic |author-link1=Martin Charles Golumbic |author2=Robert B. K. Dewar |author-link2=Robert Dewar |author3=Clinton F. Goss |year=1980 |title=Macro Substitutions in MICRO SPITBOL - a Combinatorial Analysis |journal=Proc. 11th Southeastern Conference on Combinatorics, Graph Theory and Computing, Congressus Numerantium, Utilitas Math., Winnipeg, Canada |volume=29 |pages=485β495}}</ref> The source code for MACRO SPITBOL was released under the [[GNU General Public License]] on April 17, 2009.<ref>[http://code.google.com/p/spitbol Macro Spitbol source]</ref> ==References== {{Reflist}} {{Authority control}} {{DEFAULTSORT:Spitbol Compiler}} [[Category:Compilers]] [[Category:Pattern matching programming languages]] [[Category:SNOBOL programming language family]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)