Optimization of Series Expressions. Part 2. Overview of the Theory and Implementation

Abstract

The benefits of programming in a functional style are well known. In particular, algorithms that are expressed as compositions of functions operating on sequences/vectors/streams of data elements are easier to understand and modify than equivalent algorithms expressed as loops. Unfortunately, this kind of expression is not used anywhere near as often as it could be, for at least three reasons: (1) Most programmers are less familiar with this kind of expression than with loops; (2) Most programming languages provide poor support for this kind of expression; and (3) When support is provided, it is seldom efficient. In many programming language, the second and third problems can be largely solved by introducing a data type called series, a comprehensive set of procedures operating on series, and a preprocessor (or compiler extension) that automatically converts most series expressions into efficient loops. A set of restrictions specifies which series expressions can be optimized. A set of restrictions specifies which series expressions can be optimized. If programmers stay within the limits imposed, they are guaranteed of high efficiency at all times. A Common Lisp macro package supporting series has been in use for some time. A prototype demonstrates that series can be straightforwardly supported in Pascal.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1989
Accession Number
ADA219961

Entities

People

  • Richard C. Waters

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Accumulators
  • Algorithms
  • Artificial Intelligence
  • Compilers
  • Computations
  • Computer Languages
  • Computer Programming
  • Computers
  • Language
  • Lisp Programming Language
  • Operating Systems
  • Programming Languages
  • Side Effects
  • Software Development
  • Standards
  • Symbolic Programming
  • Test And Evaluation

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computer Science.
  • Parallel and Distributed Computing.
  • Theoretical Analysis.