Automatic Construction of Special Purpose Programs,

Abstract

According to the usual formulation of the automatic programming task, one starts with a specification of a programming problem, and seeks to automatically construct a program satisfying that specification. This paper concerns a different style of automatic programming. Rather than defining the class of programming problems to be dealt with by the language in which those problems are formulated, we instead consider classes of problems defined in ordinary mathematical terms. Also, our aims are different from the traditional aims of automatic programming in that we are interested primarily in increasing the efficiency of computations, rather than in transferring the burden of programming from human to computer. Let alpha(p, x, y) be a ternary predicate. Suppose that in the course of some large computation we are obliged to repeatedly compute values of y with alpha(p, x, y) from given values of p and x. Suppose further that in the sequence of p's and x's to be treated, p changes slowly and x rapidly. Then we seek to automatically synthesize a fast special purpose program A sub p for each p; A sub p is expected to compute a y with alpha(p, x, y) when given x as input. We present one example of special purpose automatic programming in detail, namely, a method for synthesizing special purpose programs for eliminating the hidden surfaces from displays of three dimensional scenes. (Hidden surface elimination is one of the central problems in three dimensional computer graphics). In a test of the method, a synthetic program specialized to treating a particular scene - but from an arbitrary point of view - proved to be an order of magnitude faster than the best available general purpose algorithm. (Author)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 1982
Accession Number
ADA113723

Entities

People

  • Chris Goad

Organizations

  • Stanford University

Tags

Communities of Interest

  • Human Systems

DTIC Thesaurus Topics

  • Algorithms
  • Artificial Intelligence
  • Automatic Programming
  • Computations
  • Computer Graphics
  • Computer Languages
  • Computer Programming
  • Computer Science
  • Computers
  • Construction
  • Formal Languages
  • Graphics
  • Language
  • Programming Languages
  • Specifications
  • Three Dimensional
  • Trees (Data Structures)

Fields of Study

  • Computer science

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Calculus or Mathematical Analysis
  • Computer Science.