Abstract
This thesis presents the programming language TransLucid, from its
denotational semantics to its concrete implementation. In TransLucid, a
variable denotes an intension, which is an array of arbitrary rank and
infinite extent, indexed by a multidimensional context. TransLucid is
descended from Lucid, whose development since 1974 left several open problems,
all of which are solved in this thesis. These open problems are: 1) the
semantics and implementation of higher-order functions over intensions; 2) the
semantics and implementation of dimensions as first-class values, atomic
values as dimensions, and contexts as first-class values; and 3) the
implementation of a cache-based evaluator. In addition, this thesis presents a
type inference algorithm for TransLucid, and the concrete TransLucid system,
which is a synchronous reactive programming environment.