skip to main content
A demand-driven, coroutine-based implementation of a nonprocedural language
Publisher:
  • The University of Iowa
Order Number:AAI8325141
Pages:
245
Bibliometrics
Skip Abstract Section
Abstract

Nonprocedural programming languages are generally considered impractical and of theoretical value only, primarily because compilers and run-time systems for such languages tend to be highly inefficient and complex. It is widely recognized, however, that nonprocedural languages have advantages for program construction, verification, and transformation. The development of such languages can be viewed as a natural step in the evolution of computer science toward greater abstraction, with the result that the programmer is less burdened by unnecessary detail.

A nonprocedural language called ANPL, based upon the Lucid family of languages, is described, and semantic models of the language's data and sequence control aspects are presented. These models provide a general conceptual framework for an operational understanding of Lucid-like nonprocedural languages; their utility is demonstrated by their use as the basis of a demand-driven, coroutine-based implementation of ANPL.

The ANPL implementation, which has been completed, is a compiler-based system that translates programs into ACL source code. ACL is a Pascal-based programming language with coroutine facilities; such a language is particularly suitable for the implementation of this kind of non-procedural language. This implementation has a number of advantages over previous attempts to implement Lucid-like languages, including the ability to accept semantically correct programs that are rejected by other compiler-based systems, and to correctly execute programs which cause incorrect, non-terminating computations when run on other compiler-based implementations.

Contributors
  • University of Iowa

Recommendations