Automatic programming for streams II: transformational implementation

  • Authors:
  • D. Barstow

  • Affiliations:
  • Schlumberger-Doll Research, Ridgefield, CN

  • Venue:
  • ICSE '88 Proceedings of the 10th international conference on Software engineering
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

&PHgr;NIX is an automatic programming system, now under development, for writing programs which interact with external devices through temporally-ordered streams of values. Abstract specifications are stated in terms of constraints on the values of input and output streams. The target language is the Stream Machine, a language which includes concurrently executing processes communicating and synchronizing through streams. &PHgr;NIX produces programs by repeatedly transforming abstract specifications through successively more concrete forms until concrete Stream Machine programs are produced. An example which &PHgr;NIX has successfully implemented involves three major steps: transforming the specification into an applicative expression, transforming the applicative expression into three imperative processes, and merging the processes into a single process. Each major step involves several other transformation steps that reformulate and simplify intermediate expressions.