Database for intermodular analysis driver

This module contains the predicates used as data base (state) of intermodular analysis. This includes the program unit graph, i.e., the imported/exported modules graph; and the global analysis graph (registry), i.e., the intermodular equivalent of complete/7 in plai_db, that contains the relations of the predicates in the boundaries of the modules, i.e., how exported predicates call imported predicates.

Documentation on exports

No further documentation available for this predicate.

PREDICATEmain_module/2

Usage:main_module(Base,Mod)

Succeeds if Base is an entry module of the program unit to be analyzed.

    The predicate is of type data.

    Usage:punit_module(Base,Mod)

    Succeeds if Base is a module of the program unit to be analyzed (if reachable).

      The predicate is of type data.

      Usage:local_ana_module(Base,Mod)

      Succeeds if File is a module of the program unit that is being analyzed in this iteration of the intermodular analysis.

        The predicate is of type data.

        PREDICATEregistry/3

        Usage:registry(Key,Module,Registry)

        Data predicate to locally store information about the registry of one or several modules. Module is the name of the module for which Registry is an entry in the registry file. It corresponds to the global answer table as it is described in [PCH03], or other auxiliary information (e.g., types).

          The predicate is of type data.

          Usage:registry_header(Module,HeaderTerm)

          HeaderTerm is a term read from the registry header of module Module. Data predicate to store the header terms of every registry file read. The list of registry header terms depends on the registry file version, and is stored in registry_header_format/2

            The predicate is of type data.

            No further documentation available for this predicate. The predicate is of type data.

            Usage:imported_module(Module,Base)

            Enumerates the modules imported by the current module

              The predicate is of type data.

              Usage:caller_module(Module,BaseName)

              List of caller modules to be processed.

                The predicate is of type data.

                PREDICATEsrc_changed/1
                No further documentation available for this predicate. The predicate is of type data.

                No further documentation available for this predicate.

                No further documentation available for this predicate.

                No further documentation available for this predicate.

                Usage:set_main_module(File)

                • The following properties should hold at call time:
                  (nonvar/1)File is currently a term which is not a free variable.
                • The following properties should hold globally:
                  (not_fails/1)All the calls of the form set_main_module(File) do not fail.

                Usage:set_punit_modules(File)

                • The following properties should hold at call time:
                  (nonvar/1)File is currently a term which is not a free variable.
                  (list/1)File is a list.
                • The following properties should hold globally:
                  (not_fails/1)All the calls of the form set_punit_modules(File) do not fail.

                Usage:set_local_ana_modules(Mods)

                • The following properties should hold at call time:
                  (list/1)Mods is a list.
                • The following properties should hold globally:
                  (not_fails/1)All the calls of the form set_local_ana_modules(Mods) do not fail.
                  (is_det/1)All calls of the form set_local_ana_modules(Mods) are deterministic.

                No further documentation available for this predicate.

                No further documentation available for this predicate.

                No further documentation available for this predicate.

                PREDICATEreg_version/1

                Usage:reg_version(Version)

                Contains a version number which identifies the registry files associated with this version of the assertion library. Should be changed every time changes are made which render registry files incompatible, since this forces recomputation of all such files.

                • The following properties should hold upon exit:
                  (atm/1)Version is an atom.

                Usage:registry_header_format(Version,TermList)

                TermList is the list of terms which must appear in the header of version Version registry files, excluding the version number term itself.

                • The following properties should hold at call time:
                  (atm/1)Version is an atom.
                • The following properties should hold upon exit:
                  (list/1)TermList is a list.

                PREDICATEmod_typedb/2

                Usage:mod_typedb(Module,TypeDef)

                Data predicate to locally store information about the types used in the registry of one or several modules. Module is the name of the module for which the type definition TypeDef is referenced in the registry file. The original definition of TypeDef may not reside in Module, but in a related module.

                • The following properties should hold upon exit:
                  (atm/1)Module is an atom.
                  (term/1)TypeDef is any term.

                No further documentation available for this predicate.

                No further documentation available for this predicate.

                Documentation on imports

                This module has the following direct dependencies: