Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
SNOBOL
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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!
== Implementations == The classic implementation was on the [[PDP-10]]; it has been used to study [[compiler]]s, [[formal grammar]]s, and [[artificial intelligence]], especially [[machine translation]] and machine comprehension of [[natural language]]s. The original implementation was on an IBM 7090 at Bell Labs, Holmdel, N.J. SNOBOL4 was specifically designed for portability; the first implementation was started on an IBM 7094 in 1966 but completed on an IBM 360 in 1967. It was rapidly ported to many other platforms. It is normally implemented as an [[interpreter (computer software)|interpreter]] because of the difficulty in implementing some of its very high-level features, but there is a [[compiler]], the [[SPITBOL compiler]], which provides nearly all the facilities that the interpreter provides. The classic implementation on the [[PDP-10]] was quite slow, and in 1972 James Gimpel of Bell Labs, Holmdel, N.J. designed a native implementation of SNOBOL4 for the [[PDP-10]] that he named SITBOL. He used the design as the basis of a graduate class in string processing that he taught that year at [[Stevens Institute of Technology]] (which is why it was named SITBOL). Students were given sections to implement (in PDP-10 assembler) and the entire semester was focused on implementing SITBOL. It was over 80% complete by the end of the semester and was subsequently completed by Professor Gimpel and several students over the summer. SITBOL was a full-featured, high-performance SNOBOL4 interpreter. The [[GNAT]] [[Ada (programming language)|Ada]] Compiler comes with a package (GNAT.Spitbol) that implements all of the Spitbol string manipulation semantics. This can be called from within an Ada program. The file editor for the [[Michigan Terminal System]] (MTS) provided pattern matching based on SNOBOL4 patterns.<ref>[https://books.google.com/books?id=c9BWAAAAMAAJ Introduction to the MTS file editor], University of Michigan Computing Center, 1986.</ref> Several implementations are currently available. Macro SNOBOL4 in C written by Phil Budne is a free, open source implementation, capable of running on almost any platform.<ref>{{cite web| title=SNOBOL4.ORG -- SNOBOL4 Resources |url=http://www.regressive.org/snobol4/}}</ref> Catspaw, Inc provided a commercial implementation of the SNOBOL4 language for many different computer platforms, including DOS, Macintosh, Sun, RS/6000, and others, and these implementations are now available free from Catspaw. Minnesota SNOBOL4, by Viktors Berstis, the closest PC implementation to the original IBM mainframe version (even including Fortran-like FORMAT statement support) is also free.<ref>{{cite web| url=http://www.berstis.com/snobol4.htm |title=The MINNESOTA SNOBOL4 Programming Language}}</ref> Although SNOBOL itself has no [[structured programming]] features, a SNOBOL preprocessor called [[Snostorm]] was designed and implemented during the 1970s by Fred G. Swartz for use under the [[Michigan Terminal System]] (MTS) at the [[University of Michigan]].<ref name=MTSVolume9-June1979>[https://books.google.com/books?id=WxVXAAAAMAAJ&dq=snostorm+preprocessor&pg=PA114 "SNOSTORM"], ''MTS Volume 9: SNOBOL4 in MTS'', Computing Center, University of Michigan, June 1979, pages 99-120. Retrieved 1 September 2014.</ref> Snostorm was used at the eight to fifteen sites that ran MTS. It was also available at [[University College London]] (UCL) between 1982 and 1984. Snocone by [[Andrew Koenig (programmer)|Andrew Koenig]] adds block-structured constructs to the SNOBOL4 language. Snocone is a self-contained programming language, rather than a proper superset of SNOBOL4.<ref>[http://www.snobol4.com/report.htm "The Snocone Programming Language"], Andrew Koenig, USENIX (Portland, Oregon), June 1985. Retrieved 2 September 2014.</ref> The SPITBOL implementation also introduced a number of features which, while not using traditional structured programming keywords, nevertheless can be used to provide many of the equivalent capabilities normally thought of as "structured programming", most notably nested if/then/else type constructs. These features have since been added to most recent SNOBOL4 implementations. After many years as a commercial product, in April 2009 SPITBOL was released as free software under the [[GNU General Public License]].
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
SNOBOL
(section)
Add topic