Snowball (programming language): Difference between revisions

Content deleted Content added
No edit summary
Article started confusing Snowball and SNOWBALL. Rewound to before it got off track.
Line 1:
{{distinguish|SNOBOL}}
{{NotabilityPrimary sources|date=NovemberMarch 20232020}}
{{Update|inaccurate=yes|updated=September 2014|date=April 2021}}
 
'''Snowball''', also known as [[SNOBOL]], is a small string processing [[programming language]] designed for creating [[stemming]] algorithms for use in [[information retrieval]].<ref name=Snowball-HomePage>[http://snowball.tartarus.org/ "Snowball"], Martin Porter, web page. Retrieved 2 September 2014.</ref>
 
The name Snowball was chosen as a tribute to the [[SNOBOL]] programming language, with which it shares the concept of string patterns delivering signals that are used to control the flow of the program. The creator of Snowball, [[Martin Porter|Dr. Martin Porter]], "toyed with the idea of calling it 'strippergram' ", because it "effectively provides a '[[suffix]] STRIPPER GRAMmar' ".<ref name="Snowball-HomePage" />
 
The Snowball compiler translates a Snowball script (a .sbl file) into program in [[thread safety|thread-safe]] [[ANSI C]], [[Java (programming language)|Java]], Ada, C#, Go, Javascript, Object Pascal, Python or Rust. For ANSI C, each Snowball script produces a program file and corresponding header file (with .c and .h extensions).<ref>[http://snowball.tartarus.org/texts/quickintro.html "Snowball: Quick introduction"], Martin Porter, web page. Retrieved 2 September 2014.</ref> The Snowball compiler checks the consistency of its script, and this check was used to discover a [[typo]] in a seminal academic paper by [[Julie Beth Lovins|Lovins]] which had remained undetected for 30 years.<ref>{{Cite web|url=http://snowball.tartarus.org/algorithms/lovins/festschrift.html|title=Lovins revisited}}</ref>
 
The basic [[datatype]]s handled by Snowball are strings of characters, signed integers, and boolean [[truth value]]s, or more simply strings, integers and booleans. Snowball's characters are either 8-bit wide, or 16-bit, depending on the mode of use. In particular, both [[ASCII]] and [[UTF-16|16-bit Unicode]] are supported. Like the [[SNOBOL programming language]], the flow of control in Snowball is arranged by the implicit use of signals (each statement returns a true or false value), rather than the explicit use of constructs such as if, then, and break found in [[C (programming language)|C]] and many other programming languages.<ref>[http://snowball.tartarus.org/compiler/snowman.html "Snowball Manual"], Martin Porter, web page. Retrieved 2 September 2014.</ref>
 
SNOBOL was designed to utilize symbolic string data, as its name suggests its job. In only a few lines of code, programmers may quickly search, edit, and use string variables. Pattern-matching problems are well-suited to SNOBOL and [[derivative]] languages <ref name=":0">{{Cite web |title=SNOBOL |url=https://unacademy.com/content/bank-exam/study-material/computer-knowledge/snobol/ |access-date=2023-11-14 |website=Unacademy |language=en-US}}</ref>
 
The name Snowball was chosen as a tribute to the SNOBOL programming language, with which it shares the concept of string patterns delivering signals that are used to control the flow of the program. The creator of Snowball, [[Martin Porter|Dr. Martin Porter]], "toyed with the idea of calling it 'strippergram' ", because it "effectively provides a '[[suffix]] STRIPPER GRAMmar' ".<ref name="Snowball-HomePage" />
 
One of the notable features of Snowball is its collection of stemming algorithms for various languages. These algorithms are widely used in academic research and commercial applications for natural language processing.<ref>{{Cite web |title=Snowball Stemmer – NLP |url=https://www.geeksforgeeks.org/snowball-stemmer-nlp/}}</ref>
 
== Modern use ==
SNOBOL was designed to work with symbolic string data. [[Pattern-matching]] issues are well-suited to SNOBOL and derivative languages. In the post [[Cold War|Cold-War]] era, Ralph Griswold, the creator of SNOBOL, produced Icon, a language that was comparable to SNOBOL.<ref name=":0" />
 
==References==