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
Available from Godbolt, Compiler Explorer is an interactive online compiler that allows users to enter code in any of the supported languages, select a compiler, and view the resulting assembly. Alternatively, Compiler Explorer can execute the code and show the output. The Snowball programming language is supported. Sample code for a "Hello, World!" program is provided, and users are invited to enter their own code in the source or editor section, and view results in the right pane.
https://godbolt.org/z/6vrsWTbre
The official GitHub repository for the Snowball programming language includes an introduction to the language, including its goals and features, a poem dedicated to the language, and the repository of its files, packages, official documentation, a VS Code Language extension, a discord bot that can compile and execute Snowball code, and other tools, which may be sorted or found via search. Active (open) projects are featured, and people involved in the project are introduced.
https://github.com/snowball-lang
HandWiki: Snowball (Programming Language)
HandWiki is a wiki-style encyclopedia dedicated to science, technology, computing, and general knowledge, as well as a content management environment that can be used for collaborative editing of manuals and tutorials. It includes a brief tutorial on the programming language known as Snowball, a small string processing language designed for creating stemming algorithms for use in information retrieval, including references and links to external sources.
https://handwiki.org/wiki/Snowball_(programming_language)
This is the original website for the Snowball programming language system, preserved for historical purposes and because there are links to it from published literature on the language. Links to the new official website for the Snowball language, as well as its GitHub development page, are posted. The site includes an account of the language's development, an introduction, a manual, and instructions on how to run it, as well as stemmers in various languages, and other resources.
http://snowball.tartarus.org/
Hosted on GitBook, a knowledge management tool used primarily by technical teams, the site includes an introduction to Snowball, a programming language that is still in active development. Reasons to choose Snowball are given, along with details of its features, helpful guides for programmers to get set up with the product, and sample code for a "Hello World" program in Snowball. Language references and the desired coding standard for best practice are discussed.
https://snowball-lang.gitbook.io/
The new official site for the Snowball programming language outlines the continued development of the language, major events related to its development, a discussion of stemming, and a demo that performs entirely within the browser, using JavaScript code generated by the Snowball compiler. Algorithms, download links and instructions, mailing lists, license data, credits, a list of projects related to Snowball in some way, and the source code on GitHub.
https://snowballstem.org/