State table analysis of programs in an algo-like language

  • Authors:
  • David L. Parnas

  • Affiliations:
  • -

  • Venue:
  • ACM '66 Proceedings of the 1966 21st national conference
  • Year:
  • 1966

Quantified Score

Hi-index 0.02

Visualization

Abstract

a. The source language—SFD-ALGOL SFD-ALGOL 1.2 is an ALGOL-like language intended to describe the functions of synchronous systems. The function of a system is the response of its output to any input sequence. This function can be described by an algorithm. The algorithm need not be the one actually used by the system; it need only be equivalent. ALGOL is suitable for such a purpose except that it cannot express timing, specify input restrictions, or indicate which variables are input/output variables. SFD-ALGOL is identical to ALGOL-60 except for a few added declarations and an extra type of statement grouping known as a time block. The time block consists of statements enclosed within a time begin and the corresponding end, and is interpreted to mean that all actions indicated within it occur in the span of one clock pulse. Further details of SFD-ALGOL can be found in 2, a complete specification is supplied in 1. b. The object language—state tables The problem to be discussed here can be framed as follows: Given an SFD-ALGOL description of a finite state system produce the state transition table and output table of the system described. The state transition table (tabular form of the state diagram) has a row for every internal state, a column for every input state, and the entry at every intersection gives the next internal state that will occur in the system. The output table is of the same form, but contains the state of the output lines for each combination of internal and input states. A more complete treatment of finite state machine can be found in Gill 4. Each SFD-ALGOL description of a finite state system is actually a description of an infinite class of systems with equivalent* state tables. These systems cannot be distinguished on the basis of the I/O characteristics and, since an SFD-ALGOL program only describes I/O characteristics, it describes the whole class. The program or description itself has a state table, and it is this table that the process to be described derives. There exist effective algorithms that will reduce this table to the minimal possible table 3.4.