Download pdf - arXiv

Transcript
C.4. Restrictions
103
distributed because each copy of the RCS data for control a directory of
code is a full repository with complete history and tracking of the code, not
dependent on network access or a central server.
Since it is also distributed using the GNU license, it is very common
nowadays over the well-known CVS and Subversion.
The perfect partner for a RCS tool is a Web page that provides a repository to store a back-up or collaborate with others. Even though this second
thing was unnecessary (there is no team when you are developing alone), an
Assembla (https://www.assembla.com) repository has been used.
The address of the repository is opened for access to consult the sources of
the project (even though it was available at the same time in the Web page
of the research group) in https://www.assembla.com/spaces/mml-cost/
new_items. The change set of the almost three hundred commits done to
the source (including Prolog, PHP and also the same LATEX generation of
this document) can be viewed there.
C.4
Restrictions
Because this tool is written in Prolog, its use to analyze Prolog programs
needs to set some limitations over the program syntax, due to the limitations
of access to the predicates of the code introduced by the user.
For instance, if some user wants to analyze a program, it is loaded as a
module in Prolog, the loading introduces some special predicates (mml_prob/1,
mml_rep/1...), and so the use of these words is not allowed in the user code.
Another important limitation: if the user program has modules, the tool
will not be able to analyze the code of these other modules. So, the use of
modules is forbidden.
As a result, by design, the tool is able to work only with programs introduced by the user that:
• Do not use any predicate starting with the prefix ’mml_’.
• Do not use modules or different files.
• Do not contain definitions of the same predicate in the knowledge base
file and the program file.