|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 23463 (0x5ba7) Types: TextFile Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦7cca7a95d⟧ └─⟦this⟧
DOCUMENTATION FOR THE ADA_ANALYSIS SUBSYSTEM 1 General Description text inserted from file !TOOLKIT.ANALYSIS.ADA_ANALYSIS.A_SUMMARY: ada_analysis => This is a collection of tools for performing various kinds of static analysis upon Rational-resident Ada compilation units. Examples include programs to: - find all allocators, find all generics, find all tasks, etc. - count up the number of each type of Ada construct used. - explode a type declaration down to its primitive types. - display the call tree of a given procedure Each program produces an abstract document (electric table) as output which allows quick browsing and review of the gathered data. Also included is a find_template which is to aid in the construction of additional 'find' analysis programs. 2 Exported Units The following units are exported from the spec view of this subsystem: From subdirectory !TOOLKIT.ANALYSIS.ADA_ANALYSIS.REV1_1_SPEC.UNITS: * Package spec ADA_CONSTRUCTS The analyze procedures of this package count up the number of various Ada constructs that exist within the set of given Ada units. The nested package instantiations are used to construct tables of the results for the different Ada constructs. * Package spec ADA_CONSTRUCT_ANALYSIS These procedures are used to generate tables (in an abstract document) showing counts of various Ada constructs in the set of units given. * Procedure spec ANALYZE_RECORD_TYPES This procedure finds all record type declarations, focusing on the component structure of the record. The intent is to find records with like structure. This analysis may be especially useful with message oriented systems. * Procedure spec ANALYZE_TYPES Creates a preview object containing all type declarations in the specfified units and their component type declarations. There are several types of sorts available via parameter. * Package spec FIND_ALLOCATORS These procedures find all allocators. They are displayed in an abstract document showing the allocators along with type being allocated. * Package spec FIND_EXCEPTIONS This procedures in this package will find all exception declarations within the specified units. They will also locate and display all handlers and explicit raises for these exceptions. * Package spec FIND_GENERICS This does something. * Package spec FIND_INLINE_CANDIDATES This procedure display all subprograms the meet the following criteria: * Package spec FIND_LITERALS These procedures display all string literals found within the specified units along with their type name. * Package spec FIND_OBJECTS These procedures find all object declarations and provide the following information for each object: * Package spec FIND_OTHERS_CLAUSES These procedures find all others clauses within the specfied units and displays the unit name and line number in an abstract document. * Package spec FIND_OVERHEAD_FUNCTIONS These procedures find all functions within the specified units whose only statment returns the value of a variable. * Package spec FIND_PRAGMAS These procedures find all pragmas within the specified Ada units. This information is then displayed in an abstract document. * Package spec FIND_RENAMES These procedures find all renaming declarations and displays both the new name and the name of the object that was renamed. * Package spec FIND_TASKS These procedures display all tasks, each entry of the task, and all calls on those entrys in an abstract document. * Package spec FIND_UNUSED_DECLARATIONS These procedures find all declarations that have no dependents. They display the parent unit, the unused declaration, and the kind of declaration in an abstract document. * Package spec FIND_UNUSED_WITHS These procedure find all unreferenced with clauses and displays this information in an abstract document. * Package spec FIND_USE_CLAUSES These procedures find all units that contain "use" clauses and list the number of "withs", "uses", and internal "uses" within each unit. This is displayed in an abstract document. * Package spec FIND_VARIABLE_REFERENCES These procedures list all variable references and whether the variable is set or used with that reference. This information is displayed in an abstract document. * Package spec FIND_VISIBLE_TYPES These procedures find all types declared in Ada package specifications (i.e. visible) and displays these in an abstract document. * Procedure spec GLANCE *** I don't know ***. * Package spec RECORD_ANALYSIS *** analyzes record structures *** * Package spec TYPE_ANALYSIS This package collects and sorts information about type declarations that are added to its database. * Package spec TYPE_DISPLAY This package provides two interfaces (one programmatic, another working off a selected type declaration. The preview object generated will contain a completely exploaded display of a components of that type. Composite types are expanded to display each component. The size of all static components is also displayed. From subdirectory !TOOLKIT.ANALYSIS.ADA_ANALYSIS.REV1_1_SPEC.UNITS.CALL_TREE_ANALYSIS: * Package spec CALL_TREES Displays a hierarchical list of the subprograms called by any subprogram. This display can be a batch listing, or an interactive hierarchy. 3 Load View (Implementation) Units The following units are contained by the load view of this subsystem: 3.1 From subdirectory !TOOLKIT.ANALYSIS.ADA_ANALYSIS.REV1_1_1.TESTING.TEST_INPUT: 3.1.1 Procedure spec ALLOCATOR_TEST This is silly. This unit contains no annotated constructs. 3.1.2 Procedure body ALLOCATOR_TEST No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.3 Package spec EXCEPTIONS_TEST A simple test case for the find_exceptions analysis program. This unit contains no annotated constructs. 3.1.4 Package body EXCEPTIONS_TEST No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.5 Procedure spec EXCEPTIONS_TEST_PROC Input to test the find_execptions status analysis package. This unit contains no annotated constructs. 3.1.6 Procedure body EXCEPTIONS_TEST_PROC No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.7 Package spec FIND_PRAGMAS_INPUT This is silly. This unit contains no annotated constructs. 3.1.8 Package body FIND_PRAGMAS_INPUT No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.9 Package spec OBJECTS_TEST This is silly. This unit contains no annotated constructs. 3.1.10 Package body OBJECTS_TEST No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.11 Package spec OBJS This is silly. This unit contains no annotated constructs. 3.1.12 Package spec OVERHEAD This is silly. This unit contains no annotated constructs. 3.1.13 Package body OVERHEAD No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.14 Procedure spec OVERHEAD_CALLS This is silly. This unit contains no annotated constructs. 3.1.15 Procedure body OVERHEAD_CALLS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.16 Package spec RECORDS This is silly. This unit contains no annotated constructs. 3.1.17 Package spec TASKS This is silly. This unit contains no annotated constructs. 3.1.18 Package body TASKS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.19 Package spec TASKS_2 This is silly. This unit contains no annotated constructs. 3.1.20 Package body TASKS_2 No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.21 Package spec TEST_GENERICS test procedure This unit contains no annotated constructs. 3.1.22 Package body TEST_GENERICS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.23 Procedure spec TEST_PARAMS test procedure This unit contains no annotated constructs. 3.1.24 Procedure body TEST_PARAMS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.1.25 Package spec TYPES This is silly. This unit contains no annotated constructs. 3.1.26 Package spec USE_CLAUSES This is silly. This unit contains no annotated constructs. 3.1.27 Package spec USE_CLAUSE_2 This is silly. This unit contains no annotated constructs. 3.1.28 Procedure spec ZZZZ Test procedure This unit contains no annotated constructs. 3.1.29 Procedure body ZZZZ No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2 From subdirectory !TOOLKIT.ANALYSIS.ADA_ANALYSIS.REV1_1_1.UNITS: 3.2.1 Package spec ADA_CONSTRUCTS The analyze procedures of this package count up the number of various Ada constructs that exist within the set of given Ada units. The nested package instantiations are used to construct tables of the results for the different Ada constructs. This unit contains no annotated constructs. 3.2.2 Package body ADA_CONSTRUCTS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.3 Package spec ADA_CONSTRUCT_ANALYSIS The following major classes of constructs are counted and and analyzed: CONTEXT CLAUSES DECLARATIONS STATEMENTS PRAGMAS REPRESENTATION CLAUSES Within each major class there are subclasses of Ada constructs. These procedures produce abstract document tables showing the number of these constructs in each of the specified units. Annotated constructs: * Procedure spec Display_By_Unit This procedure produces tables with a row for each unit and listing the number of each construct in that unit. * Procedure spec Display_Comparison This procedure produces tables for each construct type that show the number and average number of these constructs for all units. 3.2.4 Package body ADA_CONSTRUCT_ANALYSIS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.5 Procedure spec ANALYZE_RECORD_TYPES Component types are numbered sequentially 1 through N as they are found Each record entry contains a list of components represented by these numbers. The user may use definition to traverse to the actual component. Only the first ten components of the record are listed for space reasons. This unit contains no annotated constructs. 3.2.6 Procedure body ANALYZE_RECORD_TYPES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.7 Procedure spec ANALYZE_TYPES The following sorts are available: This unit contains no annotated constructs. 3.2.8 Procedure body ANALYZE_TYPES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.9 Package spec FIND_ALLOCATORS These procedures find all allocators. They are displayed in an abstract document showing the allocators along with type being allocated. This unit contains no annotated constructs. 3.2.10 Package body FIND_ALLOCATORS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.11 Package spec FIND_EXCEPTIONS This procedures in this package will find all exception declarations within the specified units. They will also locate and display all handlers and explicit raises for these exceptions. This unit contains no annotated constructs. 3.2.12 Package body FIND_EXCEPTIONS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.13 Package spec FIND_GENERICS This does something. This unit contains no annotated constructs. 3.2.14 Package body FIND_GENERICS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.15 Package spec FIND_INLINE_CANDIDATES This procedure display all subprograms the meet the following criteria: This unit contains no annotated constructs. 3.2.16 Package body FIND_INLINE_CANDIDATES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.17 Package spec FIND_LITERALS These procedures display all string literals found within the specified units along with their type name. This unit contains no annotated constructs. 3.2.18 Package body FIND_LITERALS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.19 Package spec FIND_OBJECTS These procedures find all object declarations and provide the following information for each object: This unit contains no annotated constructs. 3.2.20 Package body FIND_OBJECTS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.21 Package spec FIND_OTHERS_CLAUSES These procedures find all others clauses within the specfied units and displays the unit name and line number in an abstract document. This unit contains no annotated constructs. 3.2.22 Package body FIND_OTHERS_CLAUSES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.23 Package spec FIND_OVERHEAD_FUNCTIONS These procedures find all functions within the specified units whose only statment returns the value of a variable. This unit contains no annotated constructs. 3.2.24 Package body FIND_OVERHEAD_FUNCTIONS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.25 Package spec FIND_PRAGMAS These procedures find all pragmas within the specified Ada units. This information is then displayed in an abstract document. This unit contains no annotated constructs. 3.2.26 Package body FIND_PRAGMAS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.27 Package spec FIND_RENAMES These procedures find all renaming declarations and displays both the new name and the name of the object that was renamed. This unit contains no annotated constructs. 3.2.28 Package body FIND_RENAMES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.29 Package spec FIND_TASKS These procedures display all tasks, each entry of the task, and all calls on those entrys in an abstract document. This unit contains no annotated constructs. 3.2.30 Package body FIND_TASKS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.31 Package spec FIND_TEMPLATE This package is merely a template to be use in starting to write additional static analysis "find" procedures. This unit contains no annotated constructs. 3.2.32 Package body FIND_TEMPLATE No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.33 Package spec FIND_UNUSED_DECLARATIONS These procedures find all declarations that have no dependents. They display the parent unit, the unused declaration, and the kind of declaration in an abstract document. This unit contains no annotated constructs. 3.2.34 Package body FIND_UNUSED_DECLARATIONS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.35 Package spec FIND_UNUSED_WITHS These procedure find all unreferenced with clauses and displays this information in an abstract document. This unit contains no annotated constructs. 3.2.36 Package body FIND_UNUSED_WITHS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.37 Package spec FIND_USE_CLAUSES These procedures find all units that contain "use" clauses and list the number of "withs", "uses", and internal "uses" within each unit. This is displayed in an abstract document. This unit contains no annotated constructs. 3.2.38 Package body FIND_USE_CLAUSES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.39 Package spec FIND_VARIABLE_REFERENCES These procedures list all variable references and whether the variable is set or used with that reference. This information is displayed in an abstract document. This unit contains no annotated constructs. 3.2.40 Package body FIND_VARIABLE_REFERENCES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.41 Package spec FIND_VISIBLE_TYPES These procedures find all types declared in Ada package specifications (i.e. visible) and displays these in an abstract document. This unit contains no annotated constructs. 3.2.42 Package body FIND_VISIBLE_TYPES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.43 Procedure spec GLANCE Provides a filtered display of all declarations within the specified unit removing unwanted information such as comments, pragmas, etc. The user may also specify that subprograms, types, or object declarations not be inluded in the list. All information is elided to provide a quick "glance" of scan of a unit This unit contains no annotated constructs. 3.2.44 Procedure body GLANCE No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.45 Package spec HYPER_TABLE The add_table procedure will traverse the entire set of elements in all units specified by the Units parameter. Based on the feedback from the formal parameter Included_Element, a row is included in a table. For each column (designated by an enumeration type), an image and linkage is requested from the instantiator. This unit contains no annotated constructs. 3.2.46 Package body HYPER_TABLE No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.47 Package spec RECORD_ANALYSIS *** analyzes record structures *** This unit contains no annotated constructs. 3.2.48 Package body RECORD_ANALYSIS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.49 Package spec TYPE_ANALYSIS This package collects and sorts information about type declarations that are added to its database. This unit contains no annotated constructs. 3.2.50 Package body TYPE_ANALYSIS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.2.51 Package spec TYPE_DISPLAY This package provides two interfaces (one programmatic, another working off a selected type declaration. The preview object generated will contain a completely exploaded display of a components of that type. Composite types are expanded to display each component. The size of all static components is also displayed. This unit contains no annotated constructs. 3.2.52 Package body TYPE_DISPLAY No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.3 From subdirectory !TOOLKIT.ANALYSIS.ADA_ANALYSIS.REV1_1_1.UNITS.CALL_TREE_ANALYSIS: 3.3.1 Package spec CALL_TREES This package provides a simple yet useful tool for analyzing the call tree for a program. It contains two interfaces: a batch listing and an interactive display. Special notes: Both procedures must be called with names of subprograms. The program does not handle package names by themselves. Annotated constructs: * Procedure spec List This procedure provides a batch listing of the call tree for a given subprogram. The listing indents to show levels. If a subprogram is listed more than once, it will only be broken down the first time. If a subprogram calls another subprogram more than once, the called subprogram will appear more than once in the listing. Parameters: These_Objects => If the string resolves to more than one object, the listing will contain the call tree for each valid object. * Procedure spec Visit This procedure provides an interactive browsing mechanism for the call tree of a subprogram. The window that appears will look something like this: Parameters: This_Object => Since the procedure provides an interactive display, it can only be called with one object at a time. 3.3.2 Package body CALL_TREES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.3.3 Package spec CALL_TREE_QUEUES This package provides the call tree in the form of a queue. This unit contains no annotated constructs. 3.3.4 Package body CALL_TREE_QUEUES No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.3.5 Package spec CT_HIERARCHY blah blah blah Annotated constructs: * Function spec Get_Next Special notes: If the user wants to quit, the function returns Ada_Program.Nil_Element. 3.3.6 Package body CT_HIERARCHY No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.3.7 Generic package spec HIERARCHY_GENERIC blah blah blah This unit contains no annotated constructs. 3.3.8 Package body HIERARCHY_GENERIC No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.3.9 Generic package spec LISTS This package implements a singly-linked list abstraction. This unit contains no annotated constructs. 3.3.10 Package body LISTS No @SUMMARY annotation was specified. This unit contains no annotated constructs. 3.3.11 Package instantiation UB_STRINGS its just a package instantiation This unit contains no annotated constructs. 4 Clients No views depend on the current spec view of this subsystem. 5 Imports The following views are imported by the current load view of the subsystem: * !TOOLKIT.UTILITIES.LRM_UTILITIES.REV1_2_SPEC * !TOOLKIT.UTILITIES.DIRECTORY_UTILITIES.REV1_1_SPEC * !TOOLKIT.UTILITIES.MISCELLANEOUS.REV1_1_SPEC 6 Model The current load view of the subsystem uses the !TOOLKIT.MODEL model.