We present an interactive computer algebra system, called FoLa (FOrmal Languages & Automata), for teaching and studying theoretical computer science. Formal languages, grammars, automata and related matters from the theory of computation are of considerable importance in the field of computer science because they cover the foundations and basic principles of computer science. The materials are also useful for important applications such as digital design, programming languages and compilers. However, for a long time pencil-and-paper has been the most commonly used tool for working with the subject, which makes the subject a very abstract one. In recent years, efforts have been made in order to develop computerized tools.The goal of this project is to use symbolic techniques from computer algebra for developing an easy-to-use, portable and efficient software which can be used for both visualizing abstract theoretical models and for assisting the manipulation of the models of computers and computation. By using advanced features from a general computer algebra system with its vast library of functions from set theory, graph theory, computer graphics, functions, relations, combinatorics, symbolic computation, mathematical reasoning and automated theorem proving, we are able to build a system which can offer a unified approach for working with both formal languages, grammars, automata and related matters.FoLa provides an environment that supports experimental research on formal languages, grammars, automata and related matters. The system does not have any restrictions on the alphabets, symbols, variables, the number of internal states, the size of input tapes or the number of input tapes. FoLa can also be used not only as a visual tool but also as a mathematical assistant for teaching and studying the subject. The software has been used since the year 2000 for teaching course on foundations of computer science at Lamar University.
[1]
Susan H. Rodger,et al.
Turning automata theory into a hands-on course
,
2006,
SIGCSE '06.
[2]
Daniel H. Younger,et al.
Recognition and Parsing of Context-Free Languages in Time n^3
,
1967,
Inf. Control..
[3]
George E. Collins,et al.
Quantifier elimination for real closed fields by cylindrical algebraic decomposition--preliminary report
,
1974,
SIGS.
[4]
Volker Weispfenning,et al.
Non-Commutative Gröbner Bases in Algebras of Solvable Type
,
1990,
J. Symb. Comput..
[5]
Michael Sipser,et al.
Introduction to the Theory of Computation
,
1996,
SIGA.
[6]
Bruce W. Char,et al.
Maple V Language Reference Manual
,
1993,
Springer US.
[7]
Derick Wood,et al.
Grail: A C++ Library for Automata and Expressions
,
1994,
J. Symb. Comput..
[8]
Peter Linz,et al.
An Introduction to Formal Languages and Automata
,
1997
.
[9]
Bruno Buchberger.
Mathematica: A System for Doing Mathematics by Computer? (Abstract)
,
1993,
DISCO.
[10]
Reino Kurki-Suonio,et al.
Describing automata in terms of languages associated with their peripheral devices.
,
1975
.
[11]
Tadao Kasami,et al.
An Efficient Recognition and Syntax-Analysis Algorithm for Context-Free Languages
,
1965
.
[12]
A. Tarski.
A Decision Method for Elementary Algebra and Geometry
,
2023
.
[13]
Bruce W. Char,et al.
Maple V Library Reference Manual
,
1992,
Springer New York.
[14]
Jon Barwise,et al.
Turing's World
,
1990
.