New Finite Automata Applications in Novice Program Comprehension
Automatically comprehending novice programs with the aim of giving useful feedback has been an Artificial Intelligence problem for over four decades.
Solving this problem basically entails manipulating the underlying program plans; i.e.
extracting and comparing the novice's plan to the expert's plan and inferring where the novice's bug is from.
The bugs of interest in this domain are often semantic bugs as all syntactic bugs are handled by automatic debuggers — built in most compilers.
Hence, a program that debugs like the human expert should understand the problem and know the expected solution(s) in order to detect semantic bugs.
This book proposes a new approach to comprehending novice programs using: regular expressions for the recognition of plans in the program text, finite automata for defining the space of program plan variations, and automata-based algorithms for the detection of semantic bugs.
The new approach is tested with a repository of novice programs with known semantic bugs and specific bugs were detected.
As a proof of concept, the theories presented in this book are further implemented in software prototypes.
Abejide Ade-Ibijola holds a Ph.D.
in Computer Science (specializing in Program Comprehension) from the University of the Witwatersrand, Johannesburg, South Africa in 2016.
He is currently a Senior Lecturer in the Department of Applied Information Systems at the University of Johannesburg, South Africa.