Hostname: page-component-89b8bd64d-j4x9h Total loading time: 0 Render date: 2026-05-07T01:35:02.848Z Has data issue: false hasContentIssue false

Multidimensional infinite data in the language Lucid

Published online by Cambridge University Press:  10 November 2014

JARRYD P. BECK
Affiliation:
Computer Science and Engineering, University of New South Wales, Australia Email: johnplaice@gmail.com
JOHN PLAICE
Affiliation:
Computer Science and Engineering, University of New South Wales, Australia Email: johnplaice@gmail.com
WILLIAM W. WADGE
Affiliation:
Department of Computer Science, University of Victoria, Canada

Abstract

Although the language Lucid was not originally intended to support computing with infinite data structures, the notion of (infinite) sequence quickly came to the fore, together with a demand-driven computation model in which demands are propagated for the values of particular values at particular index points. This naturally generalized to sequences of multiple dimensions so that a programmer could, for example, write a program that could be understood as a (nonterminating) loop in which one of the loop variables is an infinite vector.

Programmers inevitably found use for more and more dimensions, which led to a problem which is fully solved for the first time in this paper. The problem is that the implementation's cache requires some estimate of the dimensions actually used to compute a value being fetched. This estimate can be difficult or (if dimensions are passed as parameters) impossible to obtain, and the demand-driven evaluation model for Lucid breaks down.

We outline the evolution of Lucid which gave rise to this problem, and outline the solution, as used for the implementation of TransLucid, the latest descendant of Lucid.

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Article purchase

Temporarily unavailable