The CASE for Finite State Programs HTML, PDF
FINITE STATE PROGRAM COMPILER AND EDITOR
The finite state program is the software implementation of the electrical engineer's finite state machine. While references to the state machine can be found, they are not very applicable to the software designer. This is because the electrical engineer's state machine is used to derive the Boolean equations for sequential digital circuits and to a large extent, the minimization of circuit components.
The software developer, on the other hand, uses a significantly richer vocabulary than a binary one. They use the finite state machine's concept of state and the state table to form state programs.
The source programs formed with StateMaster can be compiled with a standard, programming language compiler and then linked with any external procedures executed by the FSP. Or, an 'include' metacommand can be used to merge the FSP into the main program at compile time.
StateMaster is a CASE (Computer Aided Software Engineering) tool that quickly forms computer programs. The type of programs StateMaster develops are called state programs. They are event driven and their operation is defined in a state table.
StateMaster can develop three types of state programs: Finite State, Finite Automaton, and Decision Tables. Finite State programs contain multiple states and events. Finite Automaton's contain multiple states and one event type. Decision Tables consist of a single state with multiple events.
These designs develop programs that can be modified almost effortlessly, are self documenting, execute faster, and use less memory than the equivalent in-line coded program. They develop quickly because their design, development, and documentation is defined with a state table instead of in-line code. An entry in a state table can replace not only dozens of programming instructions, but also moves the program's operation from embedded code into a highly visible and easily modified table format.
The state table represents a much more powerful programming language than inline code. It documents the program's operation in a concise format for all possible run time conditions. Omission type errors are easily avoided since the table contains a cell for every program condition.
The StateMaster contains -a state table editor and compiler. The Editor forms state tables with up to 65,536 cells (256 States by 256 Events) and can be used to insert source code directly into a state program. The Compiler forms source state programs from the data entered into the state table. The compiler's output is an ASCII file which can be uploaded to other computers.
The StateMaster CASE (Computer Aided Software Engineering compilers increase the power of any programming language. A few entries in a command table can replace and document a dozen pages of sequential code. Program decisions are moved from embedded code into a table that is more powerful and easier to modify than sequential code.
This StateMaster contains a Primer which describes state programming, an Editor that forms state tables, and a Compiler which creates Finite State Programs from data entered by the programmer into a state table.
The state table, formed by the programmer with the StateMaster, contains a 'cell' for each program condition. Here the programmer enters the name of a function to call and the next state of the program. Omission type errors are avoided since there is a cell for each possible program condition.
The StateMaster Compiler's output is a state program source file which can be uploaded to any computer. Executable programs are formed when this source program is compiled by a standard compiler and linked with the functions named in the state table. Executable programs are formed when the StateMaster's source file is compiled by a standard programming language compiler and linked with any external procedures listed in the state table. The script FSP can be embedded in a script application such as a web page or an interactive document.
Initial output languages are: C , C++,Java, J++, JavaScript, JScripy, Visual Basic, VBA and VBScript
The StateMaster and examples requires Win32, 486 or better PC with mouse and VGA or better. Retail execution is protected with a USB dongle.