Академический Документы
Профессиональный Документы
Культура Документы
William Yurcik *
Mara L. Cobo
Abstract
Both formal languages and automata theory (FLAT) are core to the CS curricula but are difficult to teach
and to learn. This situation has motivated the development of a number of theoretical computer simulators
as educational tools to allow students to bring to life many topics that traditionally were presented only
mathematically. This paper discusses the main features of software tools currently freely available via the
Internet for teaching FLAT. Based on our practical experience, the tradeoffs between different FLAT
software tools is analyzed and discussed. We conclude with general recommendations for integrating
FLAT software tools into an established curriculum.
2. Multi-Purpose FLAT Software
Multi-purpose software tools for FLAT aim at integrating
different simulation software into a single, unified package.
We feel there are four software tools that fall into this
category: DEM, JFLAP, JCT and Minerva.
DEM Deus ex Machina <www.ici.uci.edu/~savoiu
/dem> DEM comprises simulations of seven models of
computation covered in the companion textbook [15]. It
provides a generic multi-purpose platform for designing
and running different kinds of automata, such as finite state
automata (FSAs), pushdown automata (PDAs), Turing
Machines (TMs), register machines (RMs), vector
machines (VM), linear-bounded automata (LBAs) and
Markov algorithms (MAs).
Students can define an
automaton by drawing or using nodes and arcs icons.
Automata can then be run in a step mode that shows string
processing as the execution of an automaton proceeds.
JFLAP Java Formal Languages & Automata Package
<www.cs.duke.edu/~rodger/tools/> [2,4,7,12,14] JFLAP is
a package of graphical tools that can be used as an aid in
learning the basic concepts of FLAT. The original version
(FLAP) was written in C/C++ for X-window based systems
[10]. JFLAP allows the design and simulation of several
variations of finite automata (FA), pushdown automata
(PDA), one-tape Turing machines (TM) and two-tape
Turing machines (TTM). Additionally, JFLAP allows
input grammars (GRM) and regular expressions (REX) and
converting them between each other. Features of JFLAP
include several conversions from one representation to
another such as from nondeterministic finite automaton to
deterministic finite automaton (DFA) or DFA to minimum
state DFA.
1. Introduction
Many students find it difficult to grasp the concepts within
formal languages and automata theory because the abstract
formal notation overwhelms them. In other areas of
computer science (such as computer architecture), software
simulators provide an excellent teaching tool for enabling
active learning of specialized knowledge through
abstraction, interactivity, and visualization [16].
Theoretical computer simulators have some advantages
with respect to their real-world counterparts - they rely on
just a few (and rigorously related) theoretical models and
these theoretical models are conceptually simple. We
distinguish two categories of formal languages and
automata theory (FLAT) educational software, namely:
1) Generic, multi-purpose software packages for teaching
and integrating several related concepts of FLAT.
2) Software tools oriented towards simulating a specific
class of automata with educational purposes.
In this paper we will review the main features of
several software tools available for teaching FLAT in both
categories. Most of these tools have been utilized during
the undergraduate course Fundamentos de Ciencias de la
Computacin at the Universidad Nacional del Sur,
Argentina [1,8,9]. The remainder of this paper is structured
as follows: Section 2 discusses multi-purpose software
tools for modeling formal languages and their related
automata. Section 3 discusses different software simulators
for specific kinds of automata. In Section 4 we present
practical considerations for the development of FLAT
software teaching tools. We conclude with a summary in
Section 5.
33
Reviewed Papers
JCT Java Computability Toolkit <http://humboldt.
sunyit.edu/JCT/ /> [13] JCT is multiple-window, webaccessible visualization tool for simulating Finite Automata
(FA) and Turing Machines (TM). The FA environment
models all binary and unary closure operations (such as
union, intersection, Kleene Star, etc.) and introduces a
circuit board representation of constructed FAs. The TM
environment is intended for simulating deterministic
Turing Machines using a high-level notation that provides
hierarchical machine organization with locally or globally
scoped variables. As in JFLAP, automata can be drawn on
a canvas by positioning states and transitions. FAs and
TMs can be executed on arbitrary input strings and
executed in step-by-step fashion with immediate visual
feedback. Current research involves extending JCT to
consider pushdown automata (PDA) and other extensions.
Minerva [3] Minerva is an interactive and visual tool
implemented in Java that allows students to design, debug
and run different kinds of automata (FSA, PDA and Turing
machines).
It also supports experimentation with
grammars and the Pumping Lemma for regular languages.
As in JFLAP, automata can be drawn on a canvas by
positioning states and transitions. They can also be
executed on arbitrary input strings and executed in step-bystep fashion with immediate visual feedback. The current
version of Minerva is available only in Spanish.
34
Reviewed Papers
outperform existing ones has proven to be an attractive
challenge for some students.
VisualTuring provides a more sophisticated tool, a
graphical IDE that can be used to edit, define and play
with Turing machines. It features an advanced graphical
editor (including cut copy and paste facilities, multiple
undo, etc.). Machines can be run at full speed or step
mode, and debugged using breakpoints and variable
windows. The binary executables of this software are
freeware and available from <www.cheransoft.com/
vturing/download.html>.
35
Reviewed Papers
clear representation of input and output values is also
needed. In the case of Petri nets, most computer simulators
represent tokens in places as circles or numerical values
(i.e. the numbers of tokens in a given place). Petri nets can
also be used as language recognizers by labeling transitions
with symbols in a given alphabet. In that case, transitions
being fired provide an output for the Petri net similar to a
production rule.
Storage (or auxiliary data) View: Some automata
(such as pushdown automata) rely on particular storage
structures when solving problems (e.g. a stack). In other
cases (such as Turing machines) it may be useful to have
snapshots of every instance of the tape after each single
step executed by the automaton when it was run. Such
snapshots can help understand the way computation
proceeds in complex settings (e.g. Turing machines with
multiple tapes). Auxiliary structures should be visible and
properly updated as the automaton is being simulated.
Path view: In this view, the student should be able to
read a natural language description of every action
performed by the automaton with a given input string. Two
possibilities should be taken into account:
1) Basic path view: every action is shown as an item in a
list. The item consists of a term explaining the
basic
meaning of the action.
Acknowledgments
The authors want to thank Professor Jrgen Dix (University
of Manchester, UK) for his comments on the use of busy
beaver functions as additional motivation when teaching
Turing machines.
[1] Augusto, J.C. Fundamentos de Ciencias de la Computacin Notas de Curso. Universidad Nacional del Sur, Argentina, (1995).
[2] Bilska, A.O. et al. A Collection of Tools for Making Automata Theory and Formal Languages Come Alive. ACM SIGCSE Bulletin 29,
1 (1997), 15-19.
[3] Estrebou, F. et al. Minerva: Una Herramienta Para un Curso de Lenguajes Formales y Autmatas. Latinamerican Conference in
Informatics (CLEI), Montevideo, Uruguay, (2002).
[4] Gramond, E. and S.H. Rodger. Using JFLAP to Interact with Theorems in Automata Theory. ACM SIGCSE Bulletin 31, 1 (1999),
336-340.
[5] Grinder, M.T. Animating Automata: A Cross-Platform Program for Teaching Finite Automata. ACM SIGCSE Bulletin 34, 1 (2002),
63-67.
[6] Grinder, M.T. et al. Loving to Learn Theory: Active Learning Modules for the Theory of Computing. ACM SIGCSE Bulletin 34, 1
(2002), 371-375.
[7] Hung, T. and Roger, S. H. Increasing Visualization and Interaction in the Automata Theory Course. ACM SIGCSE Bulletin 32, 1
(2000), 6-10.
[8] Hopcroft, J. and Ullman, J. Introduction to Automata Theory, Languages and Computation. Addison-Wesley, (1979).
[9] Lewis, H. and Papadimitriou, C. Elements of the Theory of Computation 2nd Edition. Prentice-Hall, (1998).
[10] LoSacco, M. and S.H. Rodger. FLAP: A Tool for Drawing and Simulating Automata. ED-MEDIA (1993).
36
Reviewed Papers
[11] McDonald, J. Interactive Pushdown Automata Animation. ACM SIGCSE Bulletin 34, 1 (2002), 376-380.
[12] Procopiuc, M., O. Procopiuc, and S.H. Rodger. Visualization and Interaction in the Computer Science Formal Languages Course
with JFLAP. ASEE/IEEE Frontiers in Education (FIE) Conference, (1996).
[13] Robinson, M.B. et al. A Java-based Tool for Reasoning About Models of Computation Through Simulating Finite Automata and
Turing Machines. ACM SIGCSE Conference, (1999), 105-109.
[14] Rodger, S.H. Integrating Hands-On Work into the Formal Languages Course via Tools and Programming. Workshop on
Implementing Automata/Lecture Notes in C. S. (LNCS) 1260, Springer-Verlag, (1996), 132-148.
[15] Taylor, G. Models of Computation and Formal Languages. Oxford University Press, (1998).
[16] Wolffe, G.S., W. Yurcik, H. Osborne, and M.A. Holliday. Teaching Computer Organization/Architecture With Limited Resources
Using Simulators. ACM SIGCSE Bulletin 34, 1 (2002), 176-180.
Endnote
* William Yurcik is a corresponding author to this article.
Subscribe today!
<http://computer.org/subscribe/>
37