In the past two decades, algorithm animation has been used by computer science educators as an instructional aid in teaching different sorts of computer algorithms. This is because it can provide graphical illustration of dynamic behaviour of an algorithm and changes in its data structures during execution.
As part of their courses, computer science students will generally learn the structure of a compiler in a programming language course. This will introduce to them the subtasks of the various phases in the compiler. One of the phases is syntax analysis the function of which is to determine the structure of a program. Its corresponding module, parser, is well known to computer science students who receive syntax error notifications when compiling their programs. It is the function of the parser to detect, locate and diagnose syntax errors in a program.
LL parser is one of three general types of parsers. It uses a parse table, which is a two dimensional array of non-terminals and terminals of a grammar, to parse a program. The parse table contains entries, which are productions in the grammar, and the LL parser uses these entries and productions in the grammar to predict and derive the syntax of the program. In this sense, the parse table is an essential part of the LL parser.
LL parsing requires a number of algorithms, namely, First, First of String, Follow, construction of Parse Table, and parsing an input string. This report focuses on using a suitable algorithm animation tool to build an interactive parsing animation system, which animates all these algorithms. The interactive parsing animation system should be an on-line system and is portable and system-independent. The Java programming language is going to implement the system.
In section 2 of this report, we first explains what is an algorithm animation and its function. A brief history of algorithm animation systems is given in section 3 followed by the effectiveness of algorithm animation in teaching in section 4. We will illustrate the architecture of algorithm animation system in section 5. In section 6, various algorithm animation tools are evaluated for its suitability in building the parsing animation system. The chosen tool is then used to build the parsing animation system. How the interactive parsing animation system is built and its structures and design are explained in section 7. Finally, a discussion of the resulting system is given in section 8. Conclusions and future work are listed in section 9 of this report.