1、 1 外文原文外文原文 The C+ Design Rationale C+ is designed to be an extensible platform for rapidly developing program analysis tools. Several features of C+ facilitate this: By convention, C+ written in lower case letters refers just to the program that abstracts data from a C+ program. CIA+ written in cap
2、ital letters refers to the system made of that abstractor and all of the tools that use the database it generates. Entities include les, macros, types, functions and variables. Separation of Information Extraction and Presentation: The process of extracting information from a program and the process
3、 of presenting that information should be separate. This eliminates the need for each C+ analysis tool to duplicate the parsing process and allows C+ tools to share the information and present it in different ways. A similar doctrine was developed in the Interlisp project. Unfortunately, many C and
4、C+ tools today still violate this basic principle. A Well-Conceived Conceptual Model: A conceptual model based on the entity-relationship model was designed to describe the entities, attributes, and relationships in C+ pro- grams. The model serves as an accurate high level specification for the cont
5、ents of the program database. Relational Database: To support reuse, C+ stores abstracted information in the form of a relational database. This makes it possible for that information to be accessed by a wide variety of existing database query systems. Incremental Database Construction: C+ builds an
6、d maintains a program database for large systems efficiently because it allows incremental updates of a database. When a set of C+ source les is updated, only that portion has to be reabstracted to update the database. These basic design principles give tools based on C+ an advantage over many traditional development tools, which usually merge the information extraction and 2 presentation processes in a single tool and do not share the information with other tools. The C pr