JFLAP
{{Short description|Educational software}}
{{Infobox software
| name = JFLAP
| screenshot = Jflap-nfaToDfa.png
| caption = JFLAP NFA to DFA proof
| developer = Susan H. Rodger, Duke University
| latest release version = 7.1
| latest release date = 2018
| latest preview version =
| latest preview date =
| platform = Java SE
| language = English
| genre = Educational software
}}
JFLAP (Java Formal Languages and Automata Package) is interactive educational software written in Java
for experimenting with topics in the computer science
area of formal languages and automata theory, 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, and
experiment with proofs, such as converting a nondeterministic finite automaton (NFA) to a
deterministic finite automaton (DFA).
JFLAP is developed and maintained at Duke University, with support from the National Science Foundation since 1993. It is freeware and the source code of the most recent version is available, but under some restrictions.{{cite web|url=http://www.cs.duke.edu/csed/jflap/jflaptmp/aug28-09/license.html|access-date=2 October 2016|title=JFLAP 7.0 LICENSE|author=Susan H. Rodger}} JFLAP runs as a Java application.
History
Before JFLAP, there were several software tools related to automata theory developed by Susan H. Rodger and her students starting around 1990
in the Computer Science Department at Rensselaer Polytechnic Institute. In 1992, the first published paper at a DIMACS 2012 workshop described a related tool called NPDA
|author1=D. Caugherty |author2=S. H. Rodger |year = 1992
|title =NPDA: A Tool for Visualizing and Simulating Nondeterministic Pushdown Automata
|journal =DIMACS Workshop March 12–14, 1992
|pages = 365–377
}} (the paper was published later in 1994 in a DIMACS series).{{cite book
|author =Nathaniel Dean and Gregory E. Shannon, Editors
|title = DIMACS Series in Discrete Mathematics and Theoretical Computer Science: Computational Support for Discrete Mathematics, DIMACS Workshop, March 12-14, 1992
|year = 1994
|publisher =American Mathematical Society
|volume = 15
|location = United States of America
|isbn =0821866052
}}
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
|author1=M. LoSacco |author2=S. H. Rodger |year = 1993
|title = FLAP: A Tool for Drawing and Simulating Automata
|journal =EDMEDIA '93, World Conference on Educational Multimedia and Hypermedia
|pages = 310–317
}} At that time, the tool was written in C++ and X Window. Around 1994, Rodger moved to
Duke University and continued tool development. Around 1996, FLAP was converted to
Java and the first paper mentioned JFLAP was published in 1996{{cite journal
|author1=M. Procopiuc, O. Procopiuc |author2=S. Rodger
|year =1996
|title =Visualization and Interaction in the Computer Science Formal Languages Course with JFLAP
|journal =1996 Frontiers in Education Conference
|pages = 121–125
}}
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.{{cite book
|author1=E. Gramond |author2=S. H. Rodger
|title=The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
|chapter=Using JFLAP to interact with theorems in automata theory
|year =1999
|pages = 336–340
|doi=10.1145/299649.299800
|isbn=1581130856
|s2cid=15210587
}} 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.{{cite journal
|author1=Susan H. Rodger |author2=Eric Wiebe |author3=Kyung Min Lee |author4=Chris Morgan |author5=Kareem Omar |author6=Jonathan Su |year =2009
|title = Increasing Engagement in Automata Theory with JFLAP
|journal =Fortieth SIGCSE Technical Symposium on Computer Science Education
|pages = 403–407
}}
The history of JFLAP is covered on the jflap.org site, and includes
over 35 students from Rensselaer Polytechnic Institute and Duke University 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:{{cite journal
|author1=P. Chakraborty |author2=P.C. Saxena |author3=C. P. Katti |year = 2011
|title =Fifty years of automata simulation: a review
|journal =ACM Inroads
|volume =2
|issue=4
|pages = 59–70
|doi=10.1145/2038876.2038893
|s2cid=6446749 }}
"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 include:
- finite-state machine
- regular grammar
- regular expression
- Proof on nondeterministic finite automaton to deterministic 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 include:
- pushdown automata
- context-free grammar
- proof on wikt:nondeterministic pushdown automaton to context-free grammar
- proof on context-free grammar to pushdown automaton
- pumping lemma for context-free language
- CYK parser
- LL parser
- SLR parser
Topics on recursively enumerable language:
Other related topics:
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.NEEDS Premier press release: http://www.jflap.org/Premier2007_pressrelease_v2.pdf {{Webarchive|url=https://web.archive.org/web/20130203053010/http://www.jflap.org/Premier2007_pressrelease_v2.pdf |date=2013-02-03 }}
In 2014, Rodger was awarded the ACM Karl V. Karlstrom Outstanding Educator Award for her contributions to CS education, including the development of JFLAP.ACM announcement: http://awards.acm.org/award_winners/rodger_2853521.cfm
Books on JFLAP
Rodger and Thomas Finley wrote a book on JFLAP in 2006 {{cite book
|author1=Susan Rodger |author2=Thomas Finley |title = JFLAP: An Interactive Formal Languages and Automata Package
|year = 2006
|publisher = Jones and Bartlett
|location =Sudbury, MA
|isbn =0-7637-3834-4
}}
that can be used as a supplemental book with an automata theory course.
Gopalakrishnan wrote a book on Computation Engineering {{cite book
|author = G. L. Gopalakrishnan
|title = Computation Engineering: Applied Automata Theory and Logic
|year = 2006
|publisher = Springer Science+Business Media LLC
|isbn =978-0387244181
}}
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{{cite book
|author =Mordachai Ben-Ari
|title = Principles of the Spin Model Checker
|year = 2008
|publisher = Springer-Verlag London Limited
|isbn =978-1846287695
}}
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 site [https://www2.cs.duke.edu/csed/jflap/jflaptmp/]
- FLAP web site [http://www.cs.duke.edu/~rodger/tools/flap.html]
Category:Java (programming language) software