JFLAP (Java Formal Languages and Automata Package) is interactive educational software written in
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
for experimenting with topics in the
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
area of
formal languages
In logic, mathematics, computer science, and linguistics, a formal language is a set of string (computer science), strings whose symbols are taken from a set called "#Definition, alphabet".
The alphabet of a formal language consists of symbol ...
and
automata theory
Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory in theoretical computer science with close connections to cognitive science and mathematical l ...
, primarily intended for use at the undergraduate level or as an advanced
topic for high school. JFLAP allows one to create and simulate structures, such as programming a
finite-state machine
A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
, and
experiment with proofs, such as converting a
nondeterministic finite automaton
In automata theory, a finite-state machine is called a deterministic finite automaton (DFA), if
* each of its transitions is ''uniquely'' determined by its source state and input symbol, and
* reading an input symbol is required for each state tr ...
(NFA) to a
deterministic finite automaton (DFA).
JFLAP is developed and maintained at
Duke University
Duke University is a Private university, private research university in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present-day city of Trinity, North Carolina, Trinity in 1838, the school moved to Durham in 1 ...
, with support from the
National Science Foundation
The U.S. National Science Foundation (NSF) is an Independent agencies of the United States government#Examples of independent agencies, independent agency of the Federal government of the United States, United States federal government that su ...
since 1993. It is
freeware
Freeware is software, often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the free ...
and the source code of the most recent version is available, but under some restrictions. JFLAP runs as a Java application.
History
Before JFLAP, there were several software tools related to automata theory developed by
Susan H. Rodger
Susan H. Rodger is an American computer scientist known for work in computer science education including developing the software JFLAP for over twenty years. JFLAP is educational software for visualizing and interacting with formal languages and ...
and her students starting around 1990
in the Computer Science Department at
Rensselaer Polytechnic Institute
Rensselaer Polytechnic Institute (; RPI) is a private university, private research university in Troy, New York, United States. It is the oldest technological university in the English-speaking world and the Western Hemisphere. It was establishe ...
. In 1992, the first published paper at a DIMACS 2012 workshop described a related tool called NPDA
(the paper was published later in 1994 in a DIMACS series).
NPDA then evolved into FLAP, including also finite-state machines and Turing machines.
In 1993, a paper on Formal Languages and Automata Package
(FLAP) was published
. At that time, the tool was written in
C++ and
X Window
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been a ...
. Around 1994, Rodger moved to
Duke University
Duke University is a Private university, private research university in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present-day city of Trinity, North Carolina, Trinity in 1838, the school moved to Durham in 1 ...
and continued tool development. Around 1996, FLAP was converted to
Java and the first paper mentioned JFLAP was published in 1996
Along the way, other tools were developed as stand alone tools and then later integrated into JFLAP.
For example, a paper in 1999 described how JFLAP now allowed one to experiment with construction
type proofs, such as converting an NFA to a DFA to a minimal state DFA, and as another example,
converting NPDA to CFG and vice versa. In 2002 JFLAP was converted to Swing. In 2005-2007 a study was run with fourteen institutions using
JFLAP. A paper on this study in 2009 showed that students using JFLAP thought JFLAP made them feel more engaged in the
class, and made learning the concepts easier.
The history of JFLAP is covered on the jflap.org site, and includes
over 35 students from
Rensselaer Polytechnic Institute
Rensselaer Polytechnic Institute (; RPI) is a private university, private research university in Troy, New York, United States. It is the oldest technological university in the English-speaking world and the Western Hemisphere. It was establishe ...
and
Duke University
Duke University is a Private university, private research university in Durham, North Carolina, United States. Founded by Methodists and Quakers in the present-day city of Trinity, North Carolina, Trinity in 1838, the school moved to Durham in 1 ...
who have worked on
JFLAP and related tools since 1990.
A paper by Chakraborty, Saxena and Katti entitled "Fifty years of automata simulation: a review"
in ACM Inroads magazine in December 2011 stated the following about JFLAP:
"The effort put into developing this tool is unparalleled in the field of simulation of automata. As a result, today it is the most sophisticated tool for simulating automata. It now covers a large number of topics on automata and related fields. The tool is also the best documented among the tools for simulation of automata." and "The tool uses state of the art graphics and is one of the easiest to use. The tool is undoubtedly the most widely used tool for simulation of automata developed to date. Thousands of students have used it at numerous universities in more than a hundred countries."
Topics covered in JFLAP
Topics on
regular language
In theoretical computer science and formal language theory, a regular language (also called a rational language) is a formal language that can be defined by a regular expression, in the strict sense in theoretical computer science (as opposed to ...
include:
*
finite-state machine
A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
*
regular grammar
*
regular expression
A regular expression (shortened as regex or regexp), sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
* Proof on
nondeterministic finite automaton
In automata theory, a finite-state machine is called a deterministic finite automaton (DFA), if
* each of its transitions is ''uniquely'' determined by its source state and input symbol, and
* reading an input symbol is required for each state tr ...
to
deterministic
Determinism is the metaphysical view that all events within the universe (or multiverse) can occur only in one possible way. Deterministic theories throughout the history of philosophy have developed from diverse and sometimes overlapping mo ...
finite automaton
* Proof on deterministic finite automaton to regular grammar
* Proof on deterministic finite automaton to regular expression
*
pumping lemma for
regular languages
Topics on
context-free language
In formal language theory, a context-free language (CFL), also called a Chomsky type-2 language, is a language generated by a context-free grammar (CFG).
Context-free languages have many applications in programming languages, in particular, mos ...
include:
*
pushdown automata
In the theory of computation, a branch of theoretical computer science, a pushdown automaton (PDA) is
a type of automaton that employs a stack.
Pushdown automata are used in theories about what can be computed by machines. They are more capab ...
*
context-free grammar
In formal language theory, a context-free grammar (CFG) is a formal grammar whose production rules
can be applied to a nonterminal symbol regardless of its context.
In particular, in a context-free grammar, each production rule is of the fo ...
* proof on
wikt:nondeterministic pushdown automaton
In the theory of computation, a branch of theoretical computer science, a pushdown automaton (PDA) is
a type of automaton that employs a stack.
Pushdown automata are used in theories about what can be computed by machines. They are more capab ...
to context-free grammar
* proof on context-free grammar to pushdown automaton
* pumping lemma for context-free language
*
CYK parser
*
LL parser
In computer science, an LL parser (left-to-right, leftmost derivation) is a top-down parser for a restricted context-free language. It parses the input from Left to right, performing Leftmost derivation of the sentence.
An LL parser is called a ...
*
SLR parser
Topics on
recursively enumerable language
In mathematics, logic and computer science, a formal language is called recursively enumerable (also recognizable, partially decidable, semidecidable, Turing-acceptable or Turing-recognizable) if it is a recursively enumerable subset in the set o ...
:
*
Turing machine
A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
*
unrestricted grammar
In automata theory, the class of unrestricted grammars (also called semi-Thue, type-0 or phrase structure grammars) is the most general class of grammars in the Chomsky hierarchy. No restrictions are made on the productions of an unrestricted gramm ...
Other related topics:
*
Moore machine
In the theory of computation, a Moore machine is a finite-state machine whose current output values are determined only by its current state. This is in contrast to a Mealy machine, whose output values are determined both by its current state an ...
*
Mealy machine
In the theory of computation, a Mealy machine is a finite-state machine whose output values are determined both by its current state and the current inputs. This is in contrast to a Moore machine, whose output values are determined solely by its cu ...
*
L-system
An L-system or Lindenmayer system is a parallel rewriting system and a type of formal grammar. An L-system consists of an alphabet of symbols that can be used to make strings, a collection of production rules that expand each symbol into some ...
Releases
JFLAP is currently released as Version 7.1.
Awards
In 2007, Rodger and her students were a Finalist in the NEEDS Premier Award for Excellence in Engineering
Education Courseware for the software JFLAP.
In 2014, Rodger was awarded the ACM Karl V. Karlstrom Outstanding Educator Award for her contributions to CS education, including the development of JFLAP.
Books on JFLAP
Rodger and Thomas Finley wrote a book on JFLAP in 2006
that can be used as a supplemental book with an automata theory course.
Gopalakrishnan wrote a book on Computation Engineering
and in his book he encourages the use of JFLAP for experimenting with machines. JFLAP is also suggested to use for exercises. Mordechai Ben-Ari wrote a book entitled Principles of the
SPIN model checker
SPIN is a general tool for verifying the correctness of concurrent software models in a rigorous and mostly automated fashion. It was written by Gerard J. Holzmann and others in the original Unix group of the Computing Sciences Research Center ...
and JFLAP is referenced in the book. In particular the Visualizing Nondeterminism (VN) software the book is
about reads finite automata in JFLAP file format.
Maxim Mozgovoy wrote an automata theory textbook in which he uses screen shots from JFLAP
[{{cite book
, author = Maxim Mozgovoy
, title = Algorithms, Languages, Automata, and Compilers
, year = 2010
, publisher =Jones and Bartlett
, location =
, isbn =978-0763776275
]
Other people have written books that refer to the use of JFLAP in some way; several are mentioned on the JFLAP
web site.
References
External links
* JFLAP web sit
* FLAP web sit
Java (programming language) software
Educational programming languages
Computer science education