TransLucid: From theory to implementation
Institution: | University of New South Wales |
---|---|
Department: | Computer Science & Engineering |
Year: | 2015 |
Keywords: | Static Analysis; TransLucid; Cartesian Programming; Parallel Computation |
Record ID: | 1059590 |
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.