Browse Prior Art Database

An Informal Description of Russell Disclosure Number: IPCOM000148284D
Original Publication Date: 1980-Oct-31
Included in the Prior Art Database: 2007-Mar-29
Document File: 48 page(s) / 2M

Publishing Venue

Software Patent Institute

Related People

Boehm, H.: AUTHOR [+3]


B, Boehrn

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 6% of the total text.

Page 1 of 48

An Informal Description of Russell

B, Boehrn

A. Demers
J. Donahue

TR 80-430

Department of Computer Science Cornell University
Ithaca, New York 14853

October 1980

This work supported in part by National Science Foundation grant MCS79-01048.

[This page contains 1 picture or other non-text object]

Page 2 of 48

[This page contains 1 picture or other non-text object]

Page 3 of 48

Q.L. m R-1 Praia

    The Russell project was begun to explore the semantics of data types in programming languages. Work has proceeded along two major lines:

1. the development cf a new semantics of data types, described in [Deners 78, Donahue 791 and

2. the design of a programming language incorporating this new semantics.

    Some of the ideas developed in the course of the language design effort have been discussed in [Demers 80a, 80bJ. A preliminary draft of the Russell language appeared as [~emers 791. This report and the accompanying fomal semantics [~emers 80cJ specify a revised Russell language based on our previ- ous report, but modified to reflect our continuing experinentation with the language.

The major changes of this "new1I ~ u i s e l l
from the language of [Demers 791

are simplifications and generalizations of constructs from the eariler language. For example, type rnodification!j have been given a much simplsr semantics, ca~sules hzve been replaced by a more straightforward record con- struction and the previous (and arbitrary) distinction between procedures and functions has been removed; The size of the resulting language is such that we expect no further shrinking to take place; thus, we have produced fornal and informal descripti.>ns of the current (and probably last) Russell.

    The major goal .of the design of Russell was to build a small language in which generality was achieved by regularity. Russell has only a very few primitives; the power of the language comes from the uniformity of the syntax and semantics, which allows these primitives to be composed to produce many of the features that must be "builtin" in most other languages. For example, the subrange types of Pascal [Jensen 751 axe not part of the primitives of Russell, but can be constructed through the general means of defining type- producing functions. The semantic uniformity of Russell is made possible by the treatment of data types as values; the syntactic uniformity results fron the "type-completeness" of the Russell design.

    In most programming language descriptions, one finds the statement that types define sets of values, i.e., each value belongs to a particular set and these sets of values are called types. This is not the way types are treated in Russell. Values do not have type; we assume the value space over which Russell programs are interpreted to be typeless.

Instead, a data type in Russell i s a set of s p ~ t i o n g
that provides an

~ t e r p r e t...