Synthesis of real time acceptors

  • Authors:
  • Amr F. Fahmy;Alan W. Biermann

  • Affiliations:
  • Aiken Computation Laboratory, Harvard University, USA;Department of Computer Science, Duke University, USA

  • Venue:
  • Journal of Symbolic Computation - Special issue on automatic programming
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

A real time acceptor A is defined here to be a program that reads a finite sequence of symbols and performs one computational step after each such symbol. At the end of the sequence, the program outputs a single symbol, yes or no, indicating whether or not the input sequence has been accepted. The language accepted by A will be denoted @?(A). This paper is concenred with the problem of automatically constructing real time acceptors given finite subsets of their behaviors. A data structure, D, is defined here as a state machine. The machine can have a finite or infinite number of states. The input alphabet is the set of instructions that can be issued to D. The output alphabet is the set of test values of the states of D. The definition is very natural and provides a graphical representation of data structures. A real time acceptor consists of a pair of state machines; a finite state machine called the control structure, C, and a data structure, D. The behavior graph, B, of an acceptor A will be defined as a state machine that accepts @?(A). B may contain a finite or infinite number of states depending on the language. We prove that @?(B)=@?(M"C" "x" "D where M"C" "." "D is the product machine of C and D. The problem of automatic construction of a real time acceptor over some data structure D given its behavior B, can now be formalized as finding a decomposition of B into C and submachine of the given D. We present an algorithm for identification in the limit of a real time acceptor over any given data structure given an initial portion of its behavior. Several examples of synthesized acceptors are given.