Sujet : Re: Undefined in LISP
De : ram (at) *nospam* zedat.fu-berlin.de (Stefan Ram)
Groupes : comp.lang.lispDate : 23. Mar 2025, 19:54:45
Autres entêtes
Organisation : Stefan Ram
Message-ID : <bottom-20250323195306@ram.dialup.fu-berlin.de>
References : 1 2
Paul Rubin <
no.email@nospam.invalid> wrote or quoted:
Can you give an example of an undefined expression? In denotational
semantics, a divergent expression is represented by the symbol ⊥ ("bottom",
_|_ if the unicode glyph didn't show up for you).
"Undefined expression" may be short for "an expression the ... of
which is not defined", and "..." could be "meaning" or "value". So,
if no value is defined, it could indeed be represented by "bottom".
However, a kind of one-to-one implementation of domain theory domains
may not always be most appropriate in practical programming . . .
|/Primitive/ domains may be formed by adjoining to finite or
|denumerable sets such as { true, false }, or { ... , 2, -1, 0,
|1, 2, ...} two special objects "_" (termed /bottom/, representing
|information which is completely undetermined) and "¯" (termed
|/top/, representing information which is inconsistent or
|overdetermined).
|
|The following may then be considered as primitive domains:
|N = { . . . , -2 , -1 , 0 , 1 , 2 , . . . }° integers
|T = { true, false}° truth values
|H = {"a", " b " , . . . }° characters
|
|where {...}° denotes the augmentation of the set by _ and ¯.
|
|In such domains the notion of approximation is very
|elementary: _ approximates all elements, all elements
|approximate ¯, and all other pairs are incomparable; hence
|there are no nontrivial limits or recursive definitions of
|elements in primitive domains, and the added structure is
|needed merely to satisfy the general requirements of the
|axioms and provide a basis for construction of more complex
|domains.
|
"The Denotational Semantics of Programming Languages" (1976),
R. D. Tennent.