Aviva Directory » Computers & Internet » Programming » Snowball

Developed by Dr. Martin Porter, Snowball is a small string-processing programming language designed for creating stemming algorithms for use in information retrieval.

It was named Snowball in tribute to the SNOBOL programming language, with which it shares the concept of string patterns delivering signals used to control the flow of the program. Like SNOBOL, the flow of control in Snowball is arranged by the implicit use of signals (each statement returns a true or a false value), rather than the explicit use of constructs (such as if, then, and break) as used in C and several other programming languages.

The Snowball compiler translates a Snowball script (.sbi file) into a program in thread-safe ANSI C, Java, Ada, C#, Go, JavaScript, Object Pascal, Python, or Rust. The Snowball compiler checks the consistency of its script.

Although designed and built by Dr. Porter, he retired from the development of the language in 2014, and the language is now maintained as a community project.

One of the main reasons for the creation of Snowball was the lack of readily available stemming algorithms for languages other than English. The other was the failure to promote exact implementations of the stemming algorithm that has come to be known as the Porter stemming algorithm. Algorithmic stemmers are useful in intermediate representation (IR), despite the promise of out-performance by dictionary-based stemmers, so Snowball was created to allow stemmers to be exactly defined, and from which fast stemmer programs in ANSI C or Java can be generated.

Snowball is available under the 3-clause BSD License. This allows people to do whatever they like with the code, other than claiming another copyright for it or claiming that it is issued under a different license. If giving the Snowball software to another, you must inform them that the BSD license covers it.

Online resources related to the Snowball programming language, in particular, are the focus of this portion of our web guide. Any editors, IDEs, or other tools designed to facilitate programming in Snowball are also appropriate for this category, as are any user groups, forums, tutorials, guides, or reviews.



Recommended Resources

Search for Snowball on Google or Bing