2009
Autores
Moura, P;
Publicação
PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES
Abstract
This paper identifies potential security loopholes in the implementation of support for meta-predicates Closing these loopholes depends on three conditions: a clear distinction between closures and goals, support for an extended meta-predicate directive that allows the specification of closures, and the availability of the call/2-N family of built-in meta-predicates. These conditions provide the basis for a set of simple safety rules that allows meta-predicates to be securely supported. These safety rules are currently implemented by Logtalk, all object-oriented logic programming language, and may also be applied in the context of Prolog predicate-based module systems. Experimental results illustrate how these rules can prevent several security problems, including accidental or malicious changes to the original meta-predicate arguments and bypassing of predicate scope rules and predicate scope directives.
2009
Autores
Moura, P; Rocha, R; Madeira, SC;
Publicação
PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES
Abstract
This paper presents the logic programming concept of thread-based competitive or-parallelism, which combines the original idea of competitive or-parallelism with committed-choice nondeterminism and speculative threading. In thread-based competitive or-parallelism, an explicit; disjunction of subgoals is interpreted as a set of concurrent alternatives, each running in its own thread. The individual subgoals usually correspond to predicates implementing different procedures that, depending on the problem specifics, are expected to either fail or succeed with different performance levels. The subgoals compete for providing an answer and the first successful subgoal leads to the termination of the remaining ones. We discuss the implementation of thread-based competitive or-parallelism in the context of Logtalk, an object-oriented logic programming language, and present experimental results.
2009
Autores
Freitas, F; Oliveira, S; Rocha, R; Pereira, L;
Publicação
MITOCHONDRION
Abstract
The analysis of considerable numbers of DNA sequences is largely dependent on the development of simple software tools for automatically process the genetic data deposited on public databases. However, there are some difficulties in the automation process due to diverse synonyms being used as qualifiers for genes and some inconsistencies in gene locations between related Primate species, this fact happening even in the carefully curated database RefSeq. Here, we present mtDNA GeneEXtractor, a Windows based computer tool developed for the extraction of information for particular gene/regions from mammal mitochondrial DNA sequences deposited under GenBank format. The tool was quite efficient in retrieving organized information for comparative mtDNA gene/region diversity analyses when tested for the evaluation of transition/transversion ratios in humans and between Primates. Taking phylogenetic information into account to avoid redundancy due to ancestry-sharing, the transition/transversion ratios in the 13 protein-coding genes had a mean value of 12.46 for Primates (from 6.46 in ND2 to 17.04 in COX1) and higher (34.74) but more heterogeneous (ranging from 17.30 in ND5 to 74.39 in ND4) in a worldwide human database. The similar patterns of transition/transversion ratios in all positions and in only four fold degenerate positions show no evidence for selection in the 13 mtDNA protein-coding genes.
2009
Autores
Pereira, L; Freitas, F; Fernandes, V; Pereira, JB; Costa, MD; Costa, S; Maximo, V; Macaulay, V; Rocha, R; Samuels, DC;
Publicação
AMERICAN JOURNAL OF HUMAN GENETICS
Abstract
We analyzed the current status (as of the end of August 2008) of human mitochondrial genomes deposited in GenBank, amounting to 5140 complete or coding-region sequences, in order to present an overall picture of the diversity present in the mitochondrial DNA of the global human population. To perform this task, we developed mtDNA-GeneSyn, a computer tool that identifies and exhaustedly classifies the diversity present in large genetic data sets. The diversity observed in the 5140 human mitochondrial genomes was compared with all possible transitions and transversions from the standard human mitochondrial reference genome. This comparison showed that tRNA and rRNA secondary structures have a large effect in limiting the diversity of the human mitochondrial sequences, whereas for the protein-coding genes there is a bias toward less variation at the second codon positions. The analysis of the observed amino acid variations showed a tolerance of variations that convert between the amino acids V, 1, A, M, and T. This defines a group of amino acids with similar chemical properties that can interconvert by a single transition.
2009
Autores
Areias, M; Rocha, R;
Publicação
PROGRESS IN ARTIFICIAL INTELLIGENCE, PROCEEDINGS
Abstract
The execution model on which most tabling engines are based allocates a choice point whenever a new tabled subgoal is called. This happens even when the call is deterministic. however, sortie of the information from the choice point; is never used when evaluating deterministic tabled calls with batched scheduling. Moreover, when a deterministic answer is found for a. deterministic tabled call, the call can be completed early and the corresponding choice point can be removed. Thus, if applying batched scheduling to a long deterministic computation the system may end up consuming memory and evaluating calls unnecessarily. In this paper, we propose a solution that, tries to reduce this memory and execution overhead to a minimum. Our experimental results show that;, for deterministic tabled calls and tabled answers with batched scheduling, it; is possible not. only to reduce the memory usage overhead, but also the running time of tire execution.
2009
Autores
Costa, J; Raimundo, J; Rocha, R;
Publicação
LOGIC PROGRAMMING
Abstract
A critical component in the implementation of an efficient tabling system is the design of the data structures and algorithms to access and manipulate tabled data. Arguably, the most successful data structure for tabling is tries. However, when used in applications that pose many queries and/or have a large number of answers, tabling call build arbitrarily many and/or very large tables, quickly filling Lip memory. In this paper, we propose a new design for the table space organization where all terms in tabled subgoal calls and tabled answers are represented only once in a common global trie instead of being spread over several different trie data structures. Our initial experiments using the YapTab tabling system show significant reductions oil memory usage without compromising running time.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.