This Article 
 Bibliographic References 
 Add to: 
Program Concept Recognition and Transformation
December 1992 (vol. 18 no. 12)
pp. 1065-1075

The automated recognition of abstract high-level conceptual information or concepts, which can greatly aid the understanding of programs and therefore support many software maintenance and reengineering activities, is considered. An approach to automated concept recognition and its application to maintenance-related program transformations are described. A unique characteristic of this approach is that transformations of code can be expressed as transformations of abstract concepts. This significantly elevates the level of transformation specifications.

[1] A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[2] D. Allemang, "Understanding programs as devices," Ph.D. dissertation, Ohio State University, 1990.
[3] G. Arango, I. Baxter, P. Freeman, and C. Pidgeon, "TMM: Software maintenance by transformation,"IEEE Software, vol. 3, pp. 27-39, May 1986.
[4] R. Balzer, "Transformational implementation: An example,"IEEE Trans. Software Eng., vol. SE-7, Jan. 1981.
[5] D. Barstow, "An experiment in knowledge-based automatic programming,"Artificial Intelligence, vol. 12, pp. 73-119, 1979.
[6] I.D. Baxter, "Transformational maintenance by reuse of design histories," Ph. D. dissertation, Univ. California, Irvine, Nov., 1990.
[7] B. Biggerstaff, "Design recovery for maintenance and reuse,"IEEE Computer, July 1989.
[8] B. Biggerstaff, J. Hoskins, and D. Webster, "DESIRE, A system for design recovery,"MCC Tech. Rep. STP-081-89, Apr. 1989.
[9] D.C. Brotsky, "An algorithm for parsing flow graphs," Master's thesis, MIT, Mar. 1984.
[10] S. Burson, G. Kotik, and L. Markosian, "A program transformation approach to automating software re-engineering,"COMPSAC-90, Nov. 1990.
[11] E. Bush, "The automatic restructuring of COBOL," inProc. Conf. On Software Maintenance-1985. Los Alamitos, CA: IEEE Computer Soc., 1985, pp. 35-41.
[12] T.E. Cheatham, "Reusability through program transformations,"IEEE Trans. Software Eng., vol. 10, pp. 589-594, Sept. 1984.
[13] I. Darlington, "An experimental program transformation and synthesis system,"Artificial Intelligence, vol. 16, 1981.
[14] P. Devanbu, R. Brachman, P. Selfridge, and B. Ballard, "LaSSIE: A knowledge-based software information system,"Commun. ACM, vol. 34, pp. 35-49, 1991.
[15] A. Engberts, W. Kozaczynski, and J.Q. Ning, "Concept recognition-based program transformation," Conference on Software Maintenance, Oct. 1991.
[16] M. Feather, "A system for transformationally deriving programs,"ACM Trans. Program. Lang. Syst., vol. 4, no. 1, pp. 1-21, Jan. 1982.
[17] J. Ferrante, K. Ottenstein, and J. Warren, "The program dependence graph and its use in optimization,"ACM Trans. Program. Lang. Syst., vol. 9, no. 3, pp. 319-349, July 1987.
[18] J. Hartman, "Automatic control understanding for natural programs," Ph.D. dissertation, Univ. Texas, Austin, May 1991.
[19] M.T. Harandi, and J.Q. Ning, "Knowledge-based program analysis,"IEEE Software, Jan. 1990.
[20] G. Huet and B. Lang, "Proving and applying program transformations expressed with second-order patters,"Acta Informatica, vol. 11, pp. 31-55, 1987.
[21] W.L. Johnson,Intention-Based Diagnosis of Novice Programming Errors, San Mateo, CA: Morgan Kaufmann, 1986.
[22] W.L. Johnson and M.S. Feather, "Building an evolution transformation library," 12th International Conference on Software Engineering, Mar., 1990.
[23] W. L. Johnson and E. Soloway, "PROUST: knowledge-based program understanding,"IEEE Trans. Software Eng., vol. SE-11, pp. 267-275, Mar. 1985.
[24] E. Kant, "On the efficient synthesis of efficient programs,"Artificial Intelligence, vol. 20, 1983.
[25] W. Kozaczynski, E. Liongosari, and J. Ning, "BAL/SRW: An assembler re-engineering workbench,"Information and Software Technology, Sept. 1991.
[26] W. Kozaczynski, S. Letovsky, and J. Ning, "A knowledge-based approach to software system understanding," Sixth KBSE Conference, Sept. 1991.
[27] W. Kozaczynski and J. Ning, "SRE: A knowledge-based environment for large-scale software re-engineering activities," 11th ICSE Conference, May 1989.
[28] W. Kozaczynski, J. Ning, and T. Sarver, "Program concept recognition," inProc. 7th KBSE Conf., Sept. 1992.
[29] S. Letovsky, "Plan analysis of programs," Ph.D. dissertation, Yale University, Dec. 1988.
[30] M. Lowry, "Toward a learning apprentice for software re-engineering," Workshop on Automating Software Design, AAAI, 1990.
[31] Z. Manna, and R. Waldinger, "DEDALUS: The DEDuctive Algorithm Ur-synthesizer," 3rd ICSE Conference, May 1978.
[32] Neighbors, "The Draco approach to constructing software from reusable components,"IEEE Trans. Software Eng., vol. 10, pp. 564-573, Sept. 1984.
[33] J.Q. Ning, "A knowledge-based approach to automatic program analysis," Ph.D. dissertation, Univ. Illinois at Urbana-Campaign, Oct. 1989.
[34] H. Partsch and R. Steinbrüggen, "Program transformation systems,"ACM Comput. Surveys, vol. 15, no. 3, pp. 199-236, Sept. 1983.
[35] V. Rajlich, "VIFOR: A tool for software maintenance,"Software-Practical and Experience, Jan. 1990.
[36] REFINE User's Guide, Reasoning Systems, Palo Alto, CA, 1989.
[37] ProKappa User's Guide, Intellicorp, Inc., Oct. 1991.
[38] T. Reps and T. Teitelbaum,The Synthesizer Generator, New York: Springer-Verlag, 1988.
[39] C. Rich, "A formal representation of plans in the programmer's apprentice," Seventh IJCAI Conf., 1981.
[40] C. Rich and R. Waters, "The programmer's apprentice: A research overview,"IEEE Computer, Nov. 1988.
[41] C. Rich and L. Wills, "Recognizing a program's design: A graph-parsing approach,"IEEE Software, Jan. 1990.
[42] D. Smith, "KIDS-A knowledge-based software development system," inProc. AAAI Workshop on Automating Software Design, pp. 129-136, Aug. 1988.
[43] M. Ward, "Transforming a program into a specification," University of Durham,Tech. Rep., Nov. 29, 1989.
[44] R. C. Waters, "The programmers' apprentice: A session with KBEmacs,"IEEE Trans Software Eng., vol. SE-11, no. 11, pp. 1296-1320, Nov. 1985.
[45] D.S. Wile, "Program developments: Formal explanations of implementations,"Readings in Artificial and Software Engineering, C. Rich and R. Waters, Eds. San Mateo, CA: Morgan Kaufmann, 1986.
[46] L. Wills, "Automated program recognition," Master's thesis, MIT AI Lab, Feb. 1987.

Index Terms:
program understanding; software reengineering; software maintenance; automated concept recognition; program transformations; programming theory; software maintenance
W. Kozaczynski, J. Ning, A. Engberts, "Program Concept Recognition and Transformation," IEEE Transactions on Software Engineering, vol. 18, no. 12, pp. 1065-1075, Dec. 1992, doi:10.1109/32.184761
Usage of this product signifies your acceptance of the Terms of Use.