# Visual Automata Simulator

Visual Automata Simulator is a tool for simulating, visualizing and transforming finite state automata and Turing Machines. Visual Automata Simulator is a DFA, NFA and TM simulator.Here are some key features of "Visual Automata Simulator": Creates, simulates and transforms DFA and NFA machines Creates and simulates TM Batch tests for TM: useful features to test a bunch of files quickly! Easy-to-use GUI interface (multi-documents) Smart links between objects Machines can be drawn using the mouse - and resized at any time Multiple machines can be created in a single document Multiple documents can be opened at the same time Documents can be saved and reloaded from disk Debug mode to see exactly how the machine is working (each step has a different color) MacOS X GUI compliant. What's New in This Release: FA and TM machine can be exported to EPS file integrated update manager preferences: can specify the character used to define an epsilon transition fixed a bug where epsilon transition were not considered when starting directly from a state instead of following a non-epsilon transition. Requirements: Java 1.4.

## Visual Automata Simulator

This paper introduces a Turing machine and pushdown automata simulators as a virtual environment for learning computational models and automata theory. The twofold contribution of this work is a novel use of modern technology to improve learning and a longitudinal experimental evaluation of its use in context. A preliminary evaluation shows the effectiveness of the simulators in classroom.

Computational science is an interdisciplinary field in which mathematical models combined with scientific computing methods are used to study systems of real-world problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines [13]. One of such mathematical models is automata theory. The concepts of automata theory, such as Turing machines and pushdown automata, have important use in designing and analysing computational models of several hardware and software applications. These concepts are abstract in nature and hence used to be taught by a traditional lecture-driven style, which is suitable for learners with reflective preferences. Since computer engineering learners tend to have strong active preferences according to learning science research [11], a lecture-driven teaching style is less motivating for them.

Our simulators are designed to tackle this issue and meet the active learning preferences for computer engineering learners. Our approach can be used as a supporting tool for active learning not only for automata theory, but also for several other courses such as theory of computation, discrete mathematics, computational models, programming languages, compiler design and other related courses. Such courses cover a variety of topics including finite state automata, pushdown automata and Turing machines.

To show the effectiveness of our simulators as a model of an interactive learning tool, some experiments were carried out. The preliminary results of these experiments showed that using our simulators not only improved the learners' performance but also improved their motivation to actively participate in the learning process of the related subjects and seek more knowledge on their own.

The paper is organized as follows. Following the introduction, section two introduces related work. Section three gives an overview of the automata topics such as Turing machines and pushdown automata. We will discuss the development of our simulators in section four. The performance evaluation of the environment will be presented in section five. Section six will concludes the paper and discusses future work.

There are a number of finite state automata simulators which have been developed (e.g. [1, 2, 3, 7, 9, 10]) to enhance the learning of automata topics. Most of them suffer from one or more flaws that make them less effective (motivating) as a learning tool, particularly for less advanced students. For example, the tools PetC in [1] lack visual clarity and dynamic capability. When designing an automaton on PetC editor and try to connect two states in both directions, labels on arrows cannot be distinguished. This becomes visually terrible when the automaton is getting bigger. JFLAP [10] is a comprehensive automata tool but it requires skilled learners who already know the basics of automata to make full use of its rich operations. The automata tools in [9] are powerful, but do not provide a convenient mechanism for displaying and visually simulating the finite state machines. The ASSIST automata tools in [7] are difficult to setup and use. Almost all have been designed as tools for advanced learners. These tools assume that the learners have already grasped the fundamental concepts. They lack a clear workflow of learning activities that can guide the new learners how and where to start using the system. This makes it difficult for new students to navigate through the system. They are also dependent on advanced mathematical and idiosyncratic user interactions. On the contrary, our simulators are designed with a clear workflow of learning activities and hence it is easy-to-use and easy-to-learn for new users.

Finite state machines or automata (FA) represent a mathematical model for several software and hardware devices. Automata have several applications in both software and hardware. In software design, it can be used in a wide range of modelling from a simple text editor to a more sophisticated compiler. In computer gaming, it can be used to model puzzles, tennis games, and many others. In hardware design, it can be used to model the function of a variety of machines, for example, vending machines, elevators, video players, rice cookers, etc.

Finite state machines are the basics of a variety of courses including: automata theory, formal languages, theory of computations, computational models, discrete mathematics, programming languages, and compiler design. In this section, we will give a brief overview of finite state machines.

(q1, aw, bx) V(q2, w, yx) is possible if and only if (q2, y)e S(q1, a, b). Moves with arbitrary number of steps will be denoted by I-*. There are two classes of pushdown automata: deterministic (DPDA) and nondeterministic (NPDA). Unlike finite automata, DPDA and NDPA are not equivalent. NPDA have more expressive power than DPDA.

To deal with this issue, our simulators cover these concepts in a visual and interactive way that is more suitable for engineering students. Using the editors of the simulators, learners can easily build, modify, and simulate a PDA or a Turing machine. Then they can interactively simulate the machine with any desired input to visually see how the machine acts (in distinct steps or as a whole manner) in response to that input.

The Pushdown Automaton Simulator allows learners to draw an automaton visually and then apply operations on it. During these operations they can observe any change that may happen to the automaton. For example they can check the acceptance/rejection of an input while observing the corresponding changes in the automaton states and in the stack contents. They can also zoom-in and out and do auto outlay to enable more clear view for the automaton. These last operations are particularly useful when the underline automaton is large. The PDA simulator interface is shown in Figure 2.

As stated before, traditional lecture-driven style for teaching-learning Turing machines is time consuming and difficult for average students to grasp its basic concepts. In order to facilitate the teaching-learning of basic Turing machine concepts for average engineering students, a Turing machine simulator component is integrated into the environment. Learners can easily build their own Turing machine and follow in a step-by-step manner how the Turing machine works on any given input. They can build machines that behave as language recognizers in addition to building machines that can behave as function computers. It has a friendly user interface with some

The Turing machine simulator is integrated into the environment as well. The TM simulator is based on the work of [8]. Learners can write their machine in the input window, and then write the input of the machine on the (infinite) tape. After that, they can start to operate the machine on the input and observe how it works. For example, to add two positive integers m and n, the function add(m, n) = m+n, is represented by the Turing machine rules shown in Figure 4. A rule in the form "a b c > " means that if the current state is a and the current input tape symbol is b, then the controller changes the current state to c and moves one step to the right (right is represented by ">" and left by "

Once the automaton editing process is completed, the learner can then study many automata algorithms toough the given operations: NFA to DFA conversion, DFA to RE conversion, RE to A.-OTA conversion, A.-NFA to NFA conversion, and automata minimization algorithms. Learners also can simulate any input string with the given automaton in an animated style and speed control. The animated style simulation is useful for enhancing visual clarity and the speed control simulation is useful for giving the students chance to reflect on the underlying automaton properties during the simulation process. The "Automata Simulator" button (located at the down-left corner of the main simulator interface) allows the user to input and visually simulate any input string. Figure 5 shows an edited automaton and the simulation of the input string "1111100110110110". The green coloured states represent the current state(s) during the simulation process. The remaining part of the input string and the current input symbol are also displayed to enhance the visual clarity of the simulation process.