42 research outputs found

    A Learning Algorithm for Deterministic Finite Automata using JFLAP

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    Abstract: Please refer to full text to view abstract
    corecore