TransLucid: From theory to implementation
|Institution:||University of New South Wales|
|Department:||Computer Science & Engineering|
|Keywords:||Static Analysis; TransLucid; Cartesian Programming; Parallel Computation|
|Full text PDF:||http://handle.unsw.edu.au/1959.4/54286|
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.