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. For a given implementation, we aim to retrieve similar (analogous) verified code and then reapply the old specification to the new (similar) code. Of course, identifying similar source code is a huge part of our proposed solution.
Analogical Reasoning Compares two similar systems of information, identifying the detailed feature-by-feature similarities between them. Having identified the pre-existing similarities (and ensuring the similarity is sufficiently strong), we transfer the additional specification from the old solution to the new problem. Of course, we make appropriate adaptiations here too to make sure it all works.
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 analogous implementations of the same code.
Corentin Pinato, Felicia Halim, Fahrurrozi Rahman, Mihai Pitu, Daniella Grijincu, Rosemary Monahan & Diarmuid P. O'Donoghue. . Felicia, Fahrurrozi, Mihai, Daniela are all DESEM scholar students. Rosemary & Diarmmuid are member members of staff at Maynooth University. Back to Diarmuid's page.Recent Student Prizes: Congratulation to Daniela on getting the Best Overall MSc Project at the DESEM Summer school and to Mihai in his Best Student award also at the 2013 summer school.
Copyright 2000 National University of Ireland, Maynooth.