User:Sm13294

Automatic Java Code Generator for Regular Expressions and Finite Automata

Generalizing the common pattern of implementing Regular Expressions (RE) by converting them into a finite automaton that can be programmed, is the main idea of the Regular Expression Java Code Generator. Writing code that writes code has been introduced in Lisp, but taking this into a higher level by introducing the possibility to execute, and modify the written code is the main aim of this project. A “compiler” for regular expressions is useful to turn the expressions we write into executable code. Programming and resolving problems within automata theory is a complex process, which is time consuming and still the results may not be reliable (because of the great possibility to make mistakes while doing the required traversing steps). This project is an introduction of a tool that automatically generates Java Source Code for a given RE or Finite Automata, which significantly reduces complexity and increases productivity in a very short time. This is also a learning process tool, that can be used as a starting point to better understand the automata theory. Regular Expression Code Generator tool provides support for auto generating Java code for programming and executing (deterministic) finite automatons. It takes as input a regular expression and converts it into an equivalent nondeterministic and deterministic finite automaton, then automatically generates Java Source Code with the implementation of the DFA for the given RE.

Regular Expression Code Generator is an interactive software for visualizing finite automata, and converting these automatons in Java executable Source Code in a quick, fast and effective way. It can be found very helpful tool within any course in Automata Theory or some Compiler courses. We intend Regular Expression Code Generator to be used by Students, Teachers and Programmers. For students it will be a good starting point to better understand RE, FA and how these FA are implemented in Java in different ways. For teachers it will be a perfect tool to check and correct student’s assignments. Programmers could find it very useful to generate source code in a quick and fast way providing accessibility, performance, and improved programmer productivity while reducing time consumption.