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
SNOBOL
(section)
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|Text-string-oriented programming language}} {{About|the programming language|the cleaning product|SnoBol (cleaner)}} {{Infobox programming language | name = SNOBOL | paradigm = [[imperative programming|Imperative]], [[Procedural programming|procedural]], [[unstructured programming|unstructured]] | year = {{Start date and age|1962}} | designer = [[David J. Farber]], [[Ralph Griswold]] and [[Ivan P. Polonsky]] | developer = David J. Farber, Ralph E. Griswold, Ivan P. Polonsky, and [[Bell Labs]] | latest release version = SNOBOL4 | latest release date = {{Start date and age|1967}} | implementations = SNOBOL, [[SPITBOL]] | influenced by = [[COMIT]] | influenced = [[AWK]], SL5, [[Icon (programming language)|Icon]], [[bs (programming language)|bs]], [[Lua (programming language)|Lua]]<ref>{{Citation |last1=Ierusalimschy |first1=Roberto |last2=de Figueiredo |first2=Luiz Henrique |last3=Celes |first3=Waldemar |title=Proceedings of the third ACM SIGPLAN conference on History of programming languages |chapter=The evolution of Lua | date=2007 |url=https://www.lua.org/doc/hopl.pdf |volume= |issue= |pages=26 |doi=10.1145/1238844.1238846 |isbn=9781595937667 |s2cid=475143 |access-date=}}</ref> | website = https://www.regressive.org/snobol4/ }} '''SNOBOL''' ("StriNg Oriented and symBOlic Language") is a series of [[programming language]]s developed between 1962 and 1967 at [[AT&T Corporation|AT&T]] [[Bell Laboratories]] by [[David J. Farber]], [[Ralph Griswold]] and Ivan P. Polonsky, culminating in SNOBOL4. It was one of a number of [[String (computer science)|text-string]]-oriented languages developed during the 1950s and 1960s; others included [[COMIT]] and [[TRAC (programming language)|TRAC]]. Despite the similar name, it is entirely unlike [[COBOL]]. SNOBOL4 stands apart from most programming languages of its era by having patterns as a [[first-class object|first-class data type]], a data type whose values can be manipulated in all ways permitted to any other data type in the programming language, and by providing operators for pattern [[concatenation]] and [[alternation (formal language theory)|alternation]]. SNOBOL4 patterns are a type of object and admit various manipulations, much like later [[object-oriented language]]s such as [[JavaScript]] whose patterns are known as [[regular expression]]s. In addition SNOBOL4 strings generated during execution can be treated as programs and either interpreted or compiled and executed (as in the [[eval]] function of other languages). SNOBOL4 was quite widely taught in larger U.S. universities in the late 1960s and early 1970s and was widely used in the 1970s and 1980s as a text manipulation language in the [[humanities]]. In the 1980s and 1990s, its use faded as newer languages such as [[AWK]] and [[Perl]] made string manipulation by means of [[regular expression]]s fashionable. SNOBOL4 patterns include a way to express [[Backus–Naur Form|BNF]] grammars, which are equivalent to [[context-free grammar]]s and more powerful than regular expressions.<ref>{{cite journal |author=Gimpel, J. F. |title=A theory of discrete patterns and their implementation in SNOBOL4 |journal=Communications of the ACM |volume=16 |issue=2 |date=February 1973 |pages=91–100 |doi=10.1145/361952.361960|s2cid=17059429 |doi-access=free }}</ref> The "regular expressions" in current versions of AWK and Perl are in fact extensions of regular expressions in the [[Regular language|traditional sense]], but regular expressions, unlike SNOBOL4 patterns, are not recursive, which gives a distinct computational advantage to SNOBOL4 patterns.<ref>{{cite web|url=http://www.drdobbs.com/architecture-and-design/programs-that-transform-their-own-source/228701469 |title=Dr. Dobb's: Programs That Transform Their Own Source Code; or: the Snobol Foot Joke |publisher=Dobbscodetalk.com |access-date=2011-12-04}}</ref> (Recursive expressions did appear in [[Perl 5 version history|Perl 5.10]], though, released in December 2007.<ref>{{cite web|author=Contact details |url=http://perldoc.perl.org/5.10.0/perlre.html#Extended-Patterns |title=perlre |publisher=perldoc.perl.org |access-date=2011-12-04}}</ref><ref>{{cite web|url=http://www.rexegg.com/regex-recursion.html|title=Recursive Regex Tutorial|access-date=2017-03-19}}</ref>) The later SL5 (1977)<ref>{{cite journal |first1=Ralph E. |last1=Griswold |first2=David R. |last2=Hanson |title=An Overview of SL5 |journal=ACM SIGPLAN Notices |volume=12 |issue=4 |pages=40–50 |date=April 1977 |doi=10.1145/954654.954658 |s2cid=38692673 |url=|doi-access=free }}</ref> and [[Icon (programming language)|Icon]] (1978) languages were designed by Griswold to combine the backtracking of SNOBOL4 pattern matching with more standard [[ALGOL]]-like structuring.
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)