Synthesis of real-time programs

A real time program 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. This thesis is concerned with the problem of automatically constructing real time programs given finite subsets of their behaviors. Such programs are particularly amenable to automatic synthesis because the real time restriction means that their internal structures are mirrored in their behaviors. Synthesis is done by a decomposition of the structures observed in the behaviors into two parts, the control structure, which in most environments is called the program, and the data structure. Several examples of synthesized real time programs are given.