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.