Empirical software engineering, like every rigorous empirical discipline, uses statistics for two purposes: summarizing data; and assessing whether data support a hypothesized model. The second purpose is more subtle ...
详细信息
ISBN:
(纸本)9781538615898
Empirical software engineering, like every rigorous empirical discipline, uses statistics for two purposes: summarizing data; and assessing whether data support a hypothesized model. The second purpose is more subtle because it has to address the problem of induction: generalizing a widely applicable model from specific observational data.
In this day and age, many developers work on large, untyped code repositories. Even if they are the creators of the code, they notice that they have to figure out the equivalent of method signatures every time they wo...
详细信息
We present the foundations of critical pair analysis for the graph programming language GP 2. Our goal is to develop a static checker that can prove or refute confluence (functional behaviour) for a large class of gra...
详细信息
Modern software is often developed with advanced mechanisms for code reuse. A software module may build on other software modules or libraries where the source code is not available. And even if the source code is kno...
详细信息
Code reuse, code querying and computer aided programming are some of the main research challenges in software engineering. Therefore, we have introduced CodeOntology as an approach to leverage recent advances in the S...
详细信息
Code reuse, code querying and computer aided programming are some of the main research challenges in software engineering. Therefore, we have introduced CodeOntology as an approach to leverage recent advances in the Semantic Web area and the impressive amount of open source code freely available online, to provide a semantic view of software systems by extracting structured information from source code and by performing named entity disambiguation on the comments provided within the code, in order to link the corresponding entities to pertinent DBpedia resources. In this paper, we focus on the expressiveness of this framework by showing how CodeOntology can be used for static code analysis, semantic component search and code reuse.
The transformation of constraint logic programs (CLP programs) has been shown to be an effective methodology for verifying properties of imperative programs. By following this methodology, we encode the negation of a ...
详细信息
The transformation of constraint logic programs (CLP programs) has been shown to be an effective methodology for verifying properties of imperative programs. By following this methodology, we encode the negation of a partial correctness property of an imperative program prog as a predicate incorrect defined by a CLP program T, and we show that prog is correct by transforming T into the empty program (and thus incorrect does not hold) through the application of semantics preserving transformation rules. We can also show that prog is incorrect by transforming T into a program with the fact incorrect (and thus incorrect does hold). Some of the transformation rules perform replacements of constraints that are based on properties of the data structures manipulated by the program prog. In this paper we show that Constraint Handling Rules (CHR) are a suitable formalism for representing and applying constraint replacements during the transformation of CLP programs. In particular, we consider programs that manipulate integer arrays and we present a CHR encoding of a constraint replacement strategy based on the theory of arrays. We also propose a novel generalization strategy for constraints on integer arrays that combines CHR constraint replacements with various generalization operators on integer constraints, such as widening and convex hull. Generalization is controlled by additional constraints that relate the variable identifiers in the imperative program prog and the CLP representation of their values. The method presented in this paper has been implemented and we have demonstrated its effectiveness on a set of benchmark programs taken from the literature.
This paper highlights the relevant curricular and pedagogical ideas on how to evaluate students in learning computerprogramming. It explores the literature in the area of programming skills development towards constr...
详细信息
There exist multiple automated approaches of source code documentation generation. They often describe methods in abstract terms, using the words contained in the static source code or code excerpts from repositories....
详细信息
PEEP is a server-side scripting programming language that is widely used to develop website services. However, web-based PHP applications are distributed in source code so that the security is vulnerable and weak beca...
详细信息
This paper outlines a first proposal of a formal semantics for the JADEL programming language. JADEL is an agent-oriented programming language based on JADE that has been recently proposed to ease the adoption of JADE...
详细信息
This paper outlines a first proposal of a formal semantics for the JADEL programming language. JADEL is an agent-oriented programming language based on JADE that has been recently proposed to ease the adoption of JADE, and to promote its use. In previous works, JADEL was specified at the syntax level, and only an informal semantics was given. The major contribution of this paper is to outline a formalization of the semantics of JADEL to complement previous works and to allow reasoning on JADEL agents and multi-agent systems. First, the paper provides a brief recall on JADEL by describing its main abstractions and their specific syntactic constructs. Then, a discussion of the proposed operational semantics based on transition systems is described. Finally, a detailed operational semantics of only some relevant constructs is given. The validity of the proposed approach is discussed in the conclusion of the paper, together with directions of future developments.
暂无评论