About

Snail (or more formally, the Strings Numbers Arrays and Inheritance Language), is a dynamically typed, expression-based, object-oriented programming language that is simple enough to be implemented in a one-semester course.

Snail is developed and maintained by Kevin Angstadt, who is a Professor of Computer Science at St. Lawrence University. Course instructors are encouraged to reach out for access to the reference interpreter.

Similarity to Other Languages

Snail is heavily influenced by the COOL programming language created by Alex Aiken and modified by Wes Weimer. Any good ideas in the language should be attributed to Alex and Wes, while all mistakes and shortcomings are solely Kevin’s fault. A notable difference, however, is that snail is dynamically typed whereas COOL uses static typing and is type safe.

For completeness, the following information is provided about the history of Cool:

Cool is based on Sather164, which is itself based on the language Sather. Portions of this document were cribbed from the Sather164 manual; in turn, portions of the Sather164 manual are based on Sather documentation written by Stephen M. Omohundro.

A number people have contributed to the design and implementation of Cool, including Manuel Fähndrich, David Gay, Douglas Hauge, Megan Jacoby, Tendo Kayiira, Carleton Miyamoto, and Michael Stoddart. Joe Darcy updated Cool to the current version.

This version (used in Virginia Programming Language Design and Implementation courses) of Cool owes a great debt to George C. Necula and Bor-Yuh Evan Chang.