Next: Infant Cry Analysis Up: Language and Program Previous: Language and Dialogue

Reverse Engineering

Authors: [tex2html_wrap4244]R. De Mori, M. Bernstein, K. Kontogiannis

Investigator username:

Category: perception

Subcategory: language and program understanding

Research in Reverse Engineering at CIM focuses on the development of tools to assist programmers in understanding large software systems (> 100KLOC ). The tools are based on data dependencies, interprocedural data bindings, common references, uses / updates, slicing, as well as quality and complexity metrics. The system can perform clustering, localize code on regular expressions, and detect code fragments with similar structure and data flow properties.

Abstract Syntax Trees are obtained with the Refine (Refine is a Trademark of Reasoning Systems) software tool.

Data Flow analysis, symbolic execution, and slicing are studied with the McCat tool, developed by Prof. Hendren at the School of Computer Science.

Moreover we are developing communication packages between our analysis tools and object oriented repositories (e.g. Telos). The CIM project focuses on the development of Analysis Tools for Reverse Engineering.

The Program Understanding project was conceived by three partners (University of Toronto, University of Victoria, and McGill University), in the network of the Institute for Robotics and Intelligent Systems. It is sponsored by IBM Canada, and Engineering Council of Canada on the Collaborative Research and Development Program.