Program concept recognition

Program understanding can be greatly assisted by automating the recognition of abstract concepts present in the program code. The authors describe an approach to automated concept recognition and its implementation. In the approach, a concept model and a library of concept recognition rules are used to describe what the concepts are and how to recognize them from lower-level concepts. Programming language knowledge as well as domain knowledge are both used to aid the recognition of abstract concepts.<<ETX>>

[1]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[2]  Jim Q. Ning,et al.  Knowledge-based program analysis , 1990, IEEE Software.

[3]  William Lewis Johnson,et al.  Intention-based diagnosis of errors in novice programs (program understanding, debugging, intelligent computer-aided instruction) , 1986 .

[4]  Linda Mary Wills,et al.  Automated program recognition by graph parsing , 1992 .

[5]  Linda M. Wills,et al.  Automated Program Recognition: A Feasibility Demonstration , 1987, Artif. Intell..

[6]  Stanley Ian Letovsky,et al.  Plan analysis of programs , 1988 .

[7]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[8]  Dean Allemang,et al.  Understanding programs as devices , 1990 .

[9]  Lee A. Gladwin,et al.  Intention-Based Diagnosis of Novice Programming Errors , 1987, IEEE Expert.

[10]  M. T. Harandi,et al.  A knowledge-based approach to automatic program analysis , 1989 .

[11]  Jim Q. Ning,et al.  BAL/SRW: Assembler re-engineering workbench , 1991 .

[12]  L. Cleveland A user interface for an environment to support program understanding , 1988, Proceedings. Conference on Software Maintenance, 1988..

[13]  Ted J. Biggerstaff,et al.  Design recovery for maintenance and reuse , 1989, Computer.

[14]  Richard C. Waters,et al.  The Programmer's Apprentice: a research overview , 1988, Computer.

[15]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[16]  Jim Q. Ning,et al.  Concept recognition-based program transformation , 1991, Proceedings. Conference on Software Maintenance 1991.

[17]  Wojtek Kozaczynski,et al.  A Knowledge-based Approach To Software System Understanding , 1991, Proceedings., 6th Annual Knowledge-Based Software Engineering Conference.

[18]  Daniel C Brotsky An Algorithm for Parsing Flow Graphs , 1984 .

[19]  Linda M. Wills,et al.  Recognizing a program's design: a graph-parsing approach , 1990, IEEE Software.

[20]  Charles Rich A Formal Representation For Plans In The Programmer's Apprentice , 1982, On Conceptual Modelling.

[21]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[22]  Panagiotis K. Linos,et al.  VIFOR: A tool for software maintenance , 1990, Softw. Pract. Exp..

[23]  John Edwin Hartman,et al.  Automatic Control Understanding for Natural Programs , 1991 .

[24]  Wojtek Kozaczynski,et al.  SRE: a knowledge-based environment for large-scale software re-engineering activities , 1989, ICSE '89.

[25]  J BiggerstaffTed Design Recovery for Maintenance and Reuse , 1989 .

[26]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.