NASA image of Umbriel The Umbriel Project

Pat Terry

Department of Computer Science
Rhodes University
GRAHAMSTOWN 6140, South Africa

p.terry@ru.ac.za

The trend for systems and programming languages to become ever more complex tends to have a devastating effect on the teaching and learning of algorithmic skills, especially for second-language students, who make up an ever increasing proportion of the classes at our University. With this in mind, a project has been running since 1994 (with some success!) that makes use of a specially designed language, in the tradition of Modula and Oberon. Umbriel can best be described as a subset of Modula-2, with some other simplifications designed to minimize the enigmas that Modula-2 seems to create for beginners in areas like I/O and type compatibility.

The project and the language are described in two papers, copies of which may be downloaded from this site:

(25K) Terry, P.D.: "Umbriel - a minimal programming language". ACM SIGPLAN Notices, 30(5), 11-17, 1995.

(28K) Terry, P.D.: "Umbriel - imperative programming for unsophisticated students ". ACM SIGCSE Bulletin, 20(3),7-14 (1995)

The current implementation runs under MS-DOS, and is available as an 183K self-extracting file created with LHA, containing executables, documentation and some examples. The implementation is in the form of a very sympathetic compiler/interpreter, with an optional visual trace of execution. The sources, in Modula-2, are not currently available for downloading, but interested persons might contact the author.

The implementation may be used as a free-standing system or in conjunction with an editor to provide a complete IDE. QEdit, the excellent shareware editor produced by Semware Corporation has been found suitable for this purpose; an evaluation copy of QEdit is available as a 206K ZIP file.

A monograph on introductory programming in Umbriel, and a large set of worked examples are also available.

Umbriel, like Oberon, is the name of a moon of Uranus. The name Oberon was chosen by Niklaus Wirth for an operating system/programming language project that he embarked upon at the time the Voyager missions flew past Uranus. He was very impressed by the skill and precision of an engineering project that had been able, among other achievements, to send back outstanding photographs of that planet and its moons. "Project Oberon" is described in the book:

Wirth, N, and Gutknecht J.: "Project Oberon: The Design of an Operating System and Compiler", Addison Wesley, Wokinham (1992).

The programming languages Miranda and Ariel also have names in common with the moons of Uranus, but are quite distinct from Oberon and Umbriel.


The image of Umbriel that appears on this page is one of many placed in the public domain by NASA, and can be found in the NSSDC Photo Gallery. It was taken by Voyager 2 on January 23, 1986. At the time, the spacecraft was 1.04 million kilometers (650,000 miles) from Umbriel, and heading for its closest approach on January 24. The picture has a resolution of 19 km (12 miles), and was synthesized from frames exposed with the Voyager narrow-angle camera's violet and clear filters.Umbriel has a diameter of about 1,200 km (750 miles) and orbits 267,000 km (166,000 miles) from Uranus' centre (information supplied from NASA archives).