Snowball (programming language): Difference between revisions

Content deleted Content added
External links: Demo is linked from official site.
No edit summary
Tags: Mobile edit Mobile web edit Advanced mobile edit
Line 4:
'''Snowball''' 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 Snowball compiler translates a Snowball script (a .sbl file) into eitherprogram ain [[thread safety|thread-safe]] [[ANSI C]] program or a, [[Java (programming language)|Java]], programAda, 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 Lovins which had remained undetected for 30 years.<ref>http://snowball.tartarus.org/algorithms/lovins/festschrift.html</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>