Thumbnail
Access Restriction
Subscribed

Author Reynolds, John C.
Source ACM Digital Library
Content type Text
Publisher Association for Computing Machinery (ACM)
File Format PDF
Language English
Subject Keyword Assignment ♦ Typeless language ♦ List processing ♦ Programming language ♦ Nondeterministic algorithm ♦ Lambda calculus ♦ Reference ♦ Coroutine ♦ Data structure ♦ Quasi-parallel process ♦ Applicative language
Abstract GEDANKEN is an experimental programming language with the following characteristics. (1) Any value which is permitted in some context of the language is permissible in any other meaningful context. In particular, functions and labels are permissible results of functions and values of variables. (2) Assignment and indirect addressing are formalized by introducing values, called references, which in turn possess other values. The assignment operation always affects the relation between some reference and its value. (3) All compound data structures are treated as functions. (4) Type declarations are not permitted.The functional approach to data structures and the use of references insure that any process which accepts some data structure will accept any logically equivalent structure, regardless of its internal representation. More generally, any data structure may be implicit; i.e. it may be specified by giving an arbitrary algorithm for computing or accessing its components. The existence of label variables permits the construction of co-routines, quasi-parallel processes, and other unorthodox control mechanisms.A variety of programming examples illustrates the generality of the language. Limitations and possible extensions are discussed briefly.
Description Affiliation: Argonne National Lab, Argonne, IL (Reynolds, John C.)
Age Range 18 to 22 years ♦ above 22 year
Educational Use Research
Education Level UG and PG
Learning Resource Type Article
Publisher Date 2005-08-01
Publisher Place New York
Journal Communications of the ACM (CACM)
Volume Number 13
Issue Number 5
Page Count 12
Starting Page 308
Ending Page 319


Open content in new tab

   Open content in new tab
Source: ACM Digital Library