Visual Designing and Debugging of Deterministic Finite-State Machines in FSM

Marco T. Morazán
(Seton Hall University)
Joshua M. Schappel
(Seton Hall University)
Sachin Mahashabde
(Seton Hall University)

This article presents a visualization tool for designing and debugging deterministic finite-state machines in FSM–a domain specific language for the automata theory classroom. Like other automata visualization tools, users can edit machines and observe their execution, given some input. Unlike other automata visualization tools, the user is not burdened nor distracted with rendering a machine as a graph. Furthermore, emphasis is placed on the design of machines and this article presents a novel design recipe for deterministic finite-state machines. In support of the design process, the visualization tool allows for each state to be associated with an invariant predicate. During machine execution, the visualization tool indicates if the proposed invariant holds or does not hold after each transition. In this manner, students can validate and debug their machines before attempting to prove partial correctness or submitting for grading. In addition, any machine edited with the visualization tool can be rendered as executable code. The interface of the visualization tool along with extended examples of its use are presented.

In Jurriaan Hage: Proceedings Eighth and Ninth International Workshop on Trends in Functional Programming in Education (TFPIE 2019 and 2020), Vancouver, Canada and Krakow, Poland, 11th June 2019 and 12th February 2020, Electronic Proceedings in Theoretical Computer Science 321, pp. 55–77.
Published: 24th August 2020.

ArXived at: https://dx.doi.org/10.4204/EPTCS.321.4 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org