Abstract

Reverse engineers depend on the automatic extract ion of information from source code. Some useful kinds of information+ource models—are wellknown: call graphs, file dependence, etc. Predicting every kind of source model that a reverse engineer may need is impossible. We have developed a lightweight approach for generating flexible and tolerant source model extractors from lexical specificat ions. The approach is lightweight in that the specifications are relatively small and easy to write. It is flexible in that there are few constraints on the information in the source that can be extracted (e.g., we can extract from macros, comments, etc.). It is tolerant in that information can be extracted from source that cannot necessarily be compiled or linked. In essence, we scan for source constructs that contribute to the specified source model while ignoring constructs that do not contribute to that source model. We have developed tools to support this approach and applied the tools to the extraction of a number of different source models (file dependence, event interactions, call graphs) from systems implemented in a variety of programming languages (C, C++, CLOS, Eiffel). We discuss our approach and describe its application to extract source models not available using existing systems; for example, we compute the invoked-by relation over Field tools. We compare and contrast our approach to the conventional approach of generating source models from a program database. * This research was funded in part by the NSF grant CCR-8858804 and a Canadian NSERC post-graduate scholarship. Permission to make cfigital~ard copies of all or part of this material without fee is granted provided that the copies are not made or distributed for profit or commercial advantage, the ACM copyrighffsewer notioe, the title of the pubiioation and its date appear, and notice is given that copyright is by permission of the Association for Computing Machinery, Inc. (ACM). To copy otherwise: to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGSOFT ’95 Washington, D.C., USA 01995 ACM 0-89791-71 8-2/95/0010...$3.50

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.