Smallworld - An Object-Based Programming System
Original Publication Date: 1981-Sep-08
Included in the Prior Art Database: 2007-Mar-30
Software Patent Institute
Laff, M.R.: AUTHOR [+2]
RC 9022 (#39528) 9/8/81 Computer Science 15 pages
RC 9022 (#39528) 9/8/81
Computer Science 15 pages
Smallworld - An Object-Based Programmin~: System
M. R. Laff
IBM Thomas J. Watson Research Center
Yorktown Heights, Kew York 10598
Abstract: Programming systems tradit:iorlaIly deal with only a few
different types of data objects. Operating system command languages, for
example, are concerned w th files and programs. Typical programming
languages deal with computer-related objects such an integers, character
strings, and records. Thls is in sharp contrast to the types of things
non-programmer computer users reason about, that is
everyday objects in the real world.
Smallworld, on the other hand, is a programming system in which the
real-world is represented by objects which have properties. A property of
an object represents a fact about the corresponding real-world entity.
Thus Smallworld programs, which operate on objects structured in this
simple but general way, are "smart": they can take into account all of
the relevant facts about (properties of) the objects they are dealing
This report provides a definition of Smallworld and a sample console
session giving several examples.
Programming systems traditionally deal with only a few different types of data objects. Operating system command languages, for example, are concerned with hardware resources, such as processors, files, and printers. Typical programming languages deal with data items such as integers, character string, and records. Tine computer professional has long used these tools to design computer applications to be used by other professioeals, or perhaps by non-programmer users. These designs represent the information to be pr~cessed
as computer data structures and program organization. Often the programmer bases these design decisions on efficiency considerations, leading to obscure implementations.
The programmer is comfortable relating the integers and character strings contained in the fields of the employee record to the actual facts about the employee. For the non-programmer, however, the structure imposed by the record organization may be unnatural and perhaps even inadequate. Pieces of information may appear to be interrelated in complex and perhaps changing ways. He would really like to be able to represent the informat ion in a much more flexible, easj to manage form.
Smallworld is a programming system in which t;he dqta is structured in just
such a way. The basic entities are objects which have properties. Object
names. property names, and property values are character strings. Given an object's name and the name of a propery of that object one can obtain
the value of th...