Program Understanding through Cliché Recognition
We propose research into automatic program understanding via recognition of common data structures and algorithms (clichés). Our goals are two-fold: first, to develop a theory of program structure which makes such recognition tractable; and second, to produce a program (named Inspector) which, given...
Main Author: | |
---|---|
Format: | Working Paper |
Language: | en_US |
Published: |
MIT Artificial Intelligence Laboratory
2008
|
Online Access: | http://hdl.handle.net/1721.1/41167 |
_version_ | 1826191281562320896 |
---|---|
author | Brotsky, Daniel |
author_facet | Brotsky, Daniel |
author_sort | Brotsky, Daniel |
collection | MIT |
description | We propose research into automatic program understanding via recognition of common data structures and algorithms (clichés). Our goals are two-fold: first, to develop a theory of program structure which makes such recognition tractable; and second, to produce a program (named Inspector) which, given a Lisp program and a library of clichés, will construct a hierarchical decomposition of the program in terms of the clichés it uses.
Our approach involves assuming constraints on the possible decompositions of programs according to the teleological relations between their parts. Programs are analyzed by translating them into a language-independent form and then parsing this representation in accordance with a context-free web grammar induced by the library of clichés. Decompositions produced by this analysis will in general be partial, since most programs will not be made up entirely of clichés.
This work is motivated by the belief that identification of clichés used in program, together with knowledge of their properties, provides a sufficient basis for understanding large parts of that program's behavior. Inspector will become one component of a system of programs known as a programmer's apprentice, in which Inspector's output will be used to assist a programmer with program synthesis, debugging, and maintenance. |
first_indexed | 2024-09-23T08:53:26Z |
format | Working Paper |
id | mit-1721.1/41167 |
institution | Massachusetts Institute of Technology |
language | en_US |
last_indexed | 2024-09-23T08:53:26Z |
publishDate | 2008 |
publisher | MIT Artificial Intelligence Laboratory |
record_format | dspace |
spelling | mit-1721.1/411672019-04-10T19:34:53Z Program Understanding through Cliché Recognition Brotsky, Daniel We propose research into automatic program understanding via recognition of common data structures and algorithms (clichés). Our goals are two-fold: first, to develop a theory of program structure which makes such recognition tractable; and second, to produce a program (named Inspector) which, given a Lisp program and a library of clichés, will construct a hierarchical decomposition of the program in terms of the clichés it uses. Our approach involves assuming constraints on the possible decompositions of programs according to the teleological relations between their parts. Programs are analyzed by translating them into a language-independent form and then parsing this representation in accordance with a context-free web grammar induced by the library of clichés. Decompositions produced by this analysis will in general be partial, since most programs will not be made up entirely of clichés. This work is motivated by the belief that identification of clichés used in program, together with knowledge of their properties, provides a sufficient basis for understanding large parts of that program's behavior. Inspector will become one component of a system of programs known as a programmer's apprentice, in which Inspector's output will be used to assist a programmer with program synthesis, debugging, and maintenance. MIT Artificial Intelligence Laboratory 2008-04-14T15:01:20Z 2008-04-14T15:01:20Z 1981-12 Working Paper http://hdl.handle.net/1721.1/41167 en_US MIT Artificial Intelligence Laboratory Working Papers, WP-224 application/pdf MIT Artificial Intelligence Laboratory |
spellingShingle | Brotsky, Daniel Program Understanding through Cliché Recognition |
title | Program Understanding through Cliché Recognition |
title_full | Program Understanding through Cliché Recognition |
title_fullStr | Program Understanding through Cliché Recognition |
title_full_unstemmed | Program Understanding through Cliché Recognition |
title_short | Program Understanding through Cliché Recognition |
title_sort | program understanding through cliche recognition |
url | http://hdl.handle.net/1721.1/41167 |
work_keys_str_mv | AT brotskydaniel programunderstandingthroughclicherecognition |