42 research outputs found
A Learning Algorithm for Deterministic Finite Automata using JFLAP
AbstractThe JFLAP package is a free, interactive visualization, and teaching tool for formal languages. JFLAP is based on the principle that a picture of a concept can be easier to understand than a textual representation. With the help of this package, we implement Dana Angluin's algorithm which is able to learn Deterministic Finite Automata. The use of JFLAP allows users to visualize each step in the process of learning. The protocol used by the algorithm is called exact learning from membership and equivalence queries. This protocol was also introduced by Dana Angluin, who showed that her learning algorithm discovers the unique minimum automaton coherent with the queries in an efficient running time
Visualizing a Nondeterministic to Deterministic Finite-State Machine Transformation
The transformation of a nondeterministic finite-state automaton into a
deterministic finite-state automaton is an integral part of any course on
formal languages and automata theory. For some students, understanding this
transformation is challenging. Common problems encountered include not
comprehending how the states of the deterministic finite-state automaton are
determined and not comprehending the role that all the edges of the
nondeterministic finite-state automaton have in the deterministic finite-state
automaton's construction. To aid students in understanding, transformation
visualization tools have been developed. Although useful in helping students,
these tools do not properly illustrate the relationship between the states of
the deterministic finite-state automaton and the edges of the nondeterministic
finite-state automaton. This article presents a novel interactive visualization
tool to illustrate the transformation that highlights this relationship and
that is integrated into the FSM programming language. In addition, the
implementation of the visualization is sketched.Comment: Presented at The 2023 Scheme and Functional Programming Workshop
(arXiv:cs/0101200
Algorithms for testing equivalence of finite automata, with a grading tool for JFLAP
A wide variety of algorithms can be used to determine the equivalence of two Deterministic Finite Automata (DFAs) and/or Nondeterministic Finite Automata (NFAs). This project focuses on three key areas: 1. A detailed discussion of several algorithms that can be used to prove the equivalence of two DFAs (and/or NFAs, since every NFA has an equivalent DFA), with an analysis of the time complexity involved in each case. 2. Modifications to a few of these algorithms to produce a \u27witness\u27 string if the two automata are not equivalent. This string is accepted by one of the automata, but not by the other, so it serves as a clear demonstration of why the two automata are inequivalent. 3. A Java implementation of a couple of efficient algorithms to prove equivalence. The code is designed specially to work with JFLAP, the Java Formal Language and Automata Package. JFLAP is a popular program from Duke University which can be used to demonstrate and manipulate models such as finite automata. JFLAP software allows students to enter finite automata via an easy-to-use GUI, and this project incorporates functionality so that instructors can grade homework assignments and/or allow students to receive detailed feedback in the form of a witnes
Simulators for teaching formal languages and automata theory: a comparative survey
Formal languages and automata theory (FL&AT) are central subjects in the CS curricula which are usually diffcult both to teach and to learn. This situation has motivated the development of a number of computer simulators as educational tools which allow the student to implement and `bring to life' many topics which traditionally were studied and analyzed mathematically rather than algorithmically.
This paper discusses the main features of several educational software tools currently available for teaching FL&AT. Advantages and weaknesses of different tools are analyzed and contrasted. Based in our experience, some rationales and practical considerations for the development of this kind of educational tools are proposed.Eje: Tecnología aplicada en EducaciónRed de Universidades con Carreras en Informática (RedUNCI
Automata Tutor v3
Computer science class enrollments have rapidly risen in the past decade.
With current class sizes, standard approaches to grading and providing
personalized feedback are no longer possible and new techniques become both
feasible and necessary. In this paper, we present the third version of Automata
Tutor, a tool for helping teachers and students in large courses on automata
and formal languages. The second version of Automata Tutor supported automatic
grading and feedback for finite-automata constructions and has already been
used by thousands of users in dozens of countries. This new version of Automata
Tutor supports automated grading and feedback generation for a greatly extended
variety of new problems, including problems that ask students to create regular
expressions, context-free grammars, pushdown automata and Turing machines
corresponding to a given description, and problems about converting between
equivalent models - e.g., from regular expressions to nondeterministic finite
automata. Moreover, for several problems, this new version also enables
teachers and students to automatically generate new problem instances. We also
present the results of a survey run on a class of 950 students, which shows
very positive results about the usability and usefulness of the tool
OCaml-Flat on the Ocsigen framework
Formal Languages and Automata Theory are important and fundamental topics in Computer
Science. Due to their rigorous and formal characteristics, learning these becomes
demanding. An important support for the assimilation of concepts is the possibility of
interactively visualizing concrete examples of these computational models, thus facilitating
their understanding. There are many tools available, but most are not complete or do
not fully support the interactive aspect.
This project aims at the development of an interactive web tool in Portuguese to help
understand, in an assisted and intuitive way, the concepts and algorithms in question,
watching them work step-by-step, through typical examples pre-loaded or built by the
user (an original aspect of our platform). The tool should therefore enable the creation
and edition of an automaton or a regular expression, as well as execute the relevant
classical algorithms such as word acceptance, model conversions, etc. Another important
feature is that the tool has a clean design, in which everything is well organized and it is
also extensible so that new features can be easily added later.
This tool uses the Ocsigen Framework because it provides the development of complete
and interactive web tools written in OCaml, a functional language with a strong type
checking system and therefore perfectly suitable for a web page without errors. Ocsigen
was also chosen because it allows the creation of dynamic pages with a singular clientserver
system.
This document introduces the development of the tool, its design aspects that enable
showing different conversions and processes as well as the development of the several
functionalities related to the mechanisms already presented
Synthesis of regular expression problems and solutions
Abstract: Please refer to full text to view abstract