ARIS - Analogical Reasoning for reuse of Implementations & Specifications

Software Reuse Our work aims to automate some of the steps involved in writing specifications for a given implementation. This is achieved by reusing existing verified programs. We focus on the topology on the knowledge extracted from the source code. In brief, we translate source code, via the Abstract Syntax Tree, into the Code Graph below. Then we perform graph mathcing between pairs of these code graphs. This allows us to transfer the old speicication to a new implementation.

The illustrative example playing (below) highlights the structural similarity between two different implementations of the same code.

playble Gif showing to similar graphs

Then click on the HTML links on following page:: Index of Code Graphs.

Approximately 1 million code graphs on Kaggle

Aris Publications

Aris - Project members

Kuruvilla George Aiyankovil, Corentin Pinato, Felicia Halim, Fahrurrozi Rahman, Mihai Pitu, Daniella Grijincu, Rosemary Monahan & Diarmuid P. O'Donoghue. . Felicia, Fahrurrozi, Mihai, Daniela were all DESEM scholar students. Rosemary & Diarmmuid are member members of staff at Maynooth University. Back to Diarmuid's page.

Student Prizes:Daniela won the Best Overall MSc Project at the DESEM Summer school and to Mihai in his Best Student award also at the 2013 summer school.

Example Code graphs - in your browser.

Around 15 randomly selected code graphs. When reading these graphs, start with the top-level node 0: Block: Root

Revised: 2020.

Copyright 2000 Maynooth University, Ireland.