Abstract: We present an approach to classify computer programs according to their semantics, by using adaptive and neural network-based algorithms. We first develop a visualization method that reflects program dynamics. In order to validate the existence of patterns in visualizations, we build five features that characterize sorting methods, and apply self-organizing maps to cluster them. We then use neural networks to classify five sorting algorithms: InsertionSort, BubbleSort, HeapSort, QuickSort, and RandomSort. Our experiments show above 90% accuracy on the validation set, thereby showing that the specific sorting algorithm can be inferred from a simple visualization.
PPIG 2017 - 28th Annual Workshop
Finding Patterns in Visualizations of Programs