Check out the new USENIX Web site. next up previous
Next: Programming With Nickle Up: Nickle: Language Principles and Previous: Abstract


The past 20 years have seen an explosion of ``utility-belt programming languages''. Often implemented as true or byte-code interpreters and designed to operate smoothly in the UNIX environment (in the spirit of sed [McM78], AWK [AWK88], bc [MC78a], dc [MC78b], and the like), these languages are intended both to address specific classes of tasks and to be usable for general-purpose programming. Other examples include Perl [WCS96], Python [Lut01], Java [GJSB00], various Scheme [CE92] implementations, and ML [MTH90].

During this time frame, the authors have been intermittently involved in the development of a utility-belt programming language initially tailored to scratch-pad-style numerical calculation, and reflecting design principles including:

The result is a language with a low learning curve for experienced UNIX programmers that allows the integration of offline programs with online calculations in a flexible yet safe notation.

Bart Massey 2001-04-19