1,720,999 research outputs found
Combinations of Abstract Domains for Logic Programming
Abstract interpretation [7] is a systematic methodology to design static program analysis which has been studied extensively in the logic programming community, because of the potential for optimizations in logic programming compilers and the sophistication of the analyses which require conceptual support. With the emergence of efficient generic abstract interpretation algorithms for logic programming, the main burden in building an analysis is the abstract domain which gives a safe approximation of the concrete domain of computation. However, accurate abstract domains for logic programming are often complex because of the variety of analyses to perform, their interdependence, and the need to maintain structural information. the purpose of this paper is to propose conceptual and software support for the design of abstract domains
Type Analysis of Prolog Using Type Graphs
AbstractType analysis of Prolog is of primary importance for high-performance compilers since type information may lead to better indexing and to sophisticated specializations of unification and built-in predicates, to name a few. However, these optimization often require a sophisticated type inference system capable of inferring disjunctive and recursive types, and hence expensive in computation time. The purpose of this paper is to describe a type analysis system for Prolog based on abstract interpretation and type graphs (i.e., disjunctive rational trees) with this functionality. The system (about 15,000 lines of C) consists of the combination of a generic fixpoint algorithm, a generic pattern domain, and a type graph domain. The main contribution of the paper is to show that this approach can be engineered to be practical for medium-sized programs without sacrificing accuracy. The main technical contribution to achieve this result is a novel widening operator for type graphs which appears to be accurate and effective in keeping the sizes of the graphs, and hence the computation time, reasonably small
Going Beyond Counting First Authors in Author Co-citation Analysis
The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation
counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings
are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that
only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into
account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed
Towards a more stateful and accurate HoneyTank
The HoneyTank is a honeypot system which aims at collecting large amounts of malicious traffic by simulating the presence of hosts behind unused IP addresses of a network using a stateless approach. In this paper
On the desirable link between theory and practice in abstract interpretation (extended abstract)
Extending the FOLON Environment for Automatically Deriving Totally Correct Prolog Procedures from Logic Descriptions
The FOLON environment [2, 8] is based on Deville's methodology for logic program development [6]. In this context, we propose an algorithm which proves the total correctness of a Prolog procedure with respect to a formal specification. Another algorithm for automatically deriving such procedures is also presented. Introduction The FOLON environment (see [2, 4, 8]) was designed with the goal of supporting the automatable aspects of Deville's methodology for logic program development presented in [6]. In this context, we aim at specifying a complete tool in order to automatically derive (totally) correct Prolog procedures from a formal specification (consisting of a pure logic description of the relation, type information and a set of behavioural assumptions). First, we present an analyzer which combines various static analysis techniques in order to verify the correctness criteria for a Prolog procedure. This is a refinement and an extension of the analyzer presented in [3] which only ..
- …
