DocumentCode
2793187
Title
Source-Level Linkage: Adding Semantic Information to C++ Fact-bases
Author
Hou, Daqing ; Hoover, H. James
Author_Institution
Dept. of Comput. Sci., Alberta Univ., Edmonton, Alta.
fYear
2006
fDate
24-27 Sept. 2006
Firstpage
448
Lastpage
457
Abstract
Facts extracted from source code have been used to support a variety of software engineering activities, ranging from architectural understanding, through detection of design patterns, to program exploration. Several fact extractors have been developed and published in the literature, but most of them extract facts only from individual compilation units. Linking multiple fact-bases is largely overlooked. Source-level linkage is different from compilation linkage. Its goal is to assist a software engineer, not to produce an executable program. Thus a source-level linker needs to collect as many as possible facts that may be potentially helpful to a software engineer´s task, many of which are not available from a compiler linker. We present the design of a source-level linker for C++. This linker has been used to analyze a dozen of Microsoft Foundation Classes (MFC) programs and over 200 C++ programs that cover an extensive subset of C++ features, including templates from the standard template library (STL). As a further validation, we design a structural constraint language, SCL, to express and machine-check a wide range of constraints on the abstract semantics graph (ASG) produced by the linker
Keywords
C++ language; program compilers; programming language semantics; software libraries; system documentation; C++ fact-bases; C++ programs; Microsoft Foundation Classes programs; abstract semantics graph; architectural understanding; compiler linker; design pattern detection; program exploration; semantic information; software engineering; source code fact extractors; source-level linkage; source-level linker; standard template library; structural constraint language; type analysis; Couplings; Data mining; Data models; Design engineering; Joining processes; Libraries; Pattern analysis; Reachability analysis; Software architecture; Software engineering; C++; Datrix; fact extraction; name resolution; source-level linkage; type analysis;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Maintenance, 2006. ICSM '06. 22nd IEEE International Conference on
Conference_Location
Philadelphia, PA
ISSN
1063-6773
Print_ISBN
0-7695-2354-4
Type
conf
DOI
10.1109/ICSM.2006.61
Filename
4021373
Link To Document