Topic: procedures as data

topics > computer science > data > Group: procedure and type-valued variables

function application
functional programming
list processing
object transformation language
procedure valued variables
program execution
programming with data
reduction languages
reduction machines
universal data type


Procedures may have an internal representation accessible by the programmer. For instance in LISP, procedures are list structures like other data objects, or in Backus' functional programming, procedures are represented by expressions. Such systems provide great flexibility, allowing even the processor to be defined as a data structure. Because the data domain includes its own function space, not all functions can be represented. But Dana Scott in his lattice theory shows that only unusual functions are excluded. (cbb 5/80)
Subtopic: function as value up

Quote: programs and procedures should be values with a type that may persist [»atkiMP6_1987]
Quote: a function is a value that can be "applied" to its arguments [»reynJC8_1972]

Subtopic: function as data up

Quote: replace function arguments and results by records which represent functions, an 'apply' function to interpret these records, and an environment that binds values to variables; like LISP [»reynJC8_1972]
Quote: use abstract syntax instead of strings to represent programs in the defining language; avoids parsing into structured data objects; e.g., integers vs. digit strings [»reynJC8_1972]
Quote: EDVAC-type machines have internal memory, elementary instructions stored as data; stands for Electronic Discrete Variable Arithmetic Computer [»maucJW1_1947]
Quote: by modifying instructions; EDVAC-type machines can carry out processes that would otherwise require vast programs
QuoteRef: katzJ12_1971 ;;24 "programs are data elements just like the other data elements
QuoteRef: katzJ12_1971 ;;24 "The AEPL processor is a machine which is driven by a particular kind of data structure called programs.
QuoteRef: sammJE_1969 ;;416 lisp: can operate on itself since internal form of data and program are the same
QuoteRef: tennRD8_1976 ;;440 abstraction expressions eg lambda expression whose value is a function with bound and free variables
QuoteRef: mullAP_1964 ;;450 routines by strings labeled with a verb eg 'v start v .3. a+b- >c .3.

Subtopic: environment as procedures up

Quote: environments in SL5 serve as both data structures and procedures [»hansDR3_1978a]
QuoteRef: hansDR5_1978 ;;392 "Procedures and activation records for procedures (called environment are source-language data objects. [is SL5
QuoteRef: hansDR5_1978 ;;393 "In SL5, procedures are data objects. A procedure is created by the func := 'procedure (id1, id2, ..., idn) declarations body'end

Subtopic: function-producing functions up

Quote: function-producing functions; e.g., thrice(f)(x) = f(f(f(x)))) [»landPJ1_1964]
Quote: if function expressions are not objects, then can not compute a program or define new functional forms [»backJ8_1978a]
Quote: the semantics of a reduction language specify the meaning of a program as another program; e.g., Landin's AEs [»backJ_1972]

Subtopic: continuation up

Quote: use continuations to isolate serious operands, expressions, and functions that might not terminate; allows call-by-value or call-by-name [»reynJC8_1972]
Quote: a continuation is a linear list of instructions; an interpreter of continuations is a state-transition machine, somewhat like Landin's SECD machines [»reynJC8_1972]

Subtopic: computing a function up

Quote: a functional form is a sequence of objects, the first determines the form, the others are parameters [»backJ8_1978a]

Subtopic: universal domain up

Quote: in type-free, lambda calculus, can not define a universal domain that includes all functions [»straC3_1973]

Subtopic: expression literals up

QuoteRef: morrJH8_1972 ;;757 literal expression by french quotes eg<>

Related Topics up

Topic: continuation (16 items)
Topic: function application (18 items)
Topic: functional programming (45 items)
Topic: list processing (15 items)
Topic: object transformation language (10 items)
Topic: procedure valued variables (34 items)
Topic: program execution (8 items)
Topic: programming with data (16 items)
Topic: reduction languages (17 items)
Topic: reduction machines (14 items)
Topic: universal data type
(18 items)

Updated barberCB 6/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.