A compiler-based toolkit to teach and learn finite automata

被引:8
作者
Chakraborty, Pinaki [1 ]
Saxena, P. C. [1 ]
Katti, C. P. [1 ]
机构
[1] Jawaharlal Nehru Univ, Sch Comp & Syst Sci, New Delhi 110067, India
关键词
compiler; optimizing compiler; finite automaton; simulation; LANGUAGE;
D O I
10.1002/cae.20492
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
This paper introduces a compiler technology based approach to model and simulate finite automata for pedagogical purposes. The compiler technology helps to define a language to formally model finite automata and to develop a toolkit to simulate them efficiently. The language is called Finite Automaton Description Language (FADL) and the toolkit is based on it. A fast single-pass compiler is used to compile a finite automaton defined in FADL. Then an interpreter is used to simulate the working of the compiled finite automaton for any input string. The nondeterminism of a Nondeterministic Finite Automaton (NFA) is simulated using backtracking. A tool to view the transition diagram of the finite automaton is provided. A Deterministic Finite Automaton (DFA) can be additionally compiled using an optimizing compiler that also minimizes the number of states. Tools for converting an NFA to a DFA and for converting a DFA to a Turing machine are also provided. A preliminary testing of the toolkit has been performed in which the participating students observed that the toolkit is an interesting teaching tool and it helped them to acquire a better perception about finite automata. (c) 2010 Wiley Periodicals, Inc. Comput Appl Eng Educ 21: 467-474, 2013
引用
收藏
页码:467 / 474
页数:8
相关论文
共 30 条
[1]   Generating Functional Implementations of Finite State Automata in C# 3.0 [J].
Biczo, Mihaly ;
Pocza, Krisztian .
ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 238 (02) :3-12
[2]  
Bilska A. O., 1997, SIGCSE Bulletin, V29, P15, DOI 10.1145/268085.268089
[3]   Small Languages in an Undergraduate PL/Compiler Course [J].
Bodik, Rastislav .
ACM SIGPLAN NOTICES, 2008, 43 (11) :39-44
[4]  
Cavalcante R., 2004, SIGCSE Bulletin, V36, P140, DOI 10.1145/1028174.971349
[5]  
Chakraborty P., 2008, P NAT C INF TECHN CO, P203
[6]  
Chakraborty P., 2009, J MULTIDISC ENG TECH, V3, P6
[7]  
Chakraborty P., 2008, P INT C DAT MAN, P103
[8]   A language for easy and efficient modeling of Turing machines [J].
Chakraborty, Pinaki .
PROGRESS IN NATURAL SCIENCE, 2007, 17 (07) :867-871
[9]  
Chesnevar C. I., 2003, SIGCSE Bulletin, V35, P33, DOI 10.1145/782941.782975
[10]  
Chesnevar C. I., 2004, ACM SIGCSE B, V36, P7, DOI DOI 10.1145/1007996.1008002