When analyzing software systems we face the challenge of how to implement a particular analysis for different programminglanguages. A solution for this problem is to write a single analysis using a code query languag...
详细信息
When analyzing software systems we face the challenge of how to implement a particular analysis for different programminglanguages. A solution for this problem is to write a single analysis using a code query language, abstracting from the specificities of languages being analyzed. Over the past ten years many code query technologies have been developed, based on different formalisms. Each technology comes with its own query language and set of features. To determine the state of the art of code querying we compare the languages and tools for seven code query technologies: Grok, Rscript, JRelCal, Semmle Code, JGraLab, CrocoPat and JTransformer. the specification of a package stability metric is used as a running example to compare the languages. the comparison involves twelve criteria, some of which are concerned with properties of the query language (paradigm, types, parametrization, polymorphism, modularity, and libraries), and some of which are concerned withthe tool itself (output formats, interactive interface, API support, interchange formats, extraction support, and licensing). We contextualize the criteria in two usage scenarios: interactive and tool integration. We conclude that there is no particularly weak or dominant tool. As important improvement points, we identify the lack of library mechanisms, interchange formats, and possibilities for integration with source code extractors.
the C preprocessor cpp is a powerful and language-independent tool, widely used to implement variable software in different programminglanguages (C, C++) using conditional compilation. Preprocessor annotations can us...
详细信息
the C preprocessor cpp is a powerful and language-independent tool, widely used to implement variable software in different programminglanguages (C, C++) using conditional compilation. Preprocessor annotations can used on different levels of granularity such as functions or statements. In this paper, we investigate whether there is a relation between code clones and preprocessor annotations. Specifically, we address the question whether the discipline of annotation has an effect on code clones. To this end, we perform a case study on fifteen different C programs and analyze them regarding code clones and #ifdef occurrences. We found only minor effects of annotations on code clones, but a relationship between annotations that align withthe code structure (and code clones). Withthis work, we provide new insights why code clones occur in C programs. Furthermore, the results can support the decision whether or not it is beneficial to remove clones.
the proceedings contain 24 papers. the topics discussed include: multi-agent systems in the industry three notable cases in Italy;towards an application of graph structure analysis to a MAS-based model of proxemic dis...
the proceedings contain 24 papers. the topics discussed include: multi-agent systems in the industry three notable cases in Italy;towards an application of graph structure analysis to a MAS-based model of proxemic distances in pedestrian systems;a methodology to extend imperative languages with AgentSpeak declarative constructs;exploiting agent-oriented programming for developing Android applications;towards an agent-based proxemic model for pedestrian and group dynamic;programming open systems with agents, environments and organizations;a multiscale agent-based model of morphogenesis in biological systems;a multi-agent implementation of social networks;towards a flexible development framework for multi-agent systems;peer-to-peer delegation for accessing web services;a self-organising infrastructure for chemical-semantic coordination: experiments in TuCSoN;and a self-organising system for resource finding in large-scale computational grids.
We propose an approach to the operational semantics aimed at describing the behavior of an interpreter (or, anyway, of an implementation) of agent-oriented logic programminglanguages. We define a formal dialogue game...
详细信息
ISBN:
(纸本)9783642149764
We propose an approach to the operational semantics aimed at describing the behavior of an interpreter (or, anyway, of an implementation) of agent-oriented logic programminglanguages. We define a formal dialogue game framework that focuses on rules of dialogue that the players of the game, i.e., the components of the language interpreter, can be assumed to adopt in playing an "innocent" game that finalized to creating the interpreter behavior. the approach leads to a natural, uniform and modular way of modeling all the components of an interpreter, including the communication component and the communication protocol, and allows several properties to be formally proved.
In this paper, we show how we can automatically translate high-level organisation modelling languages into simpler languages based on the idea of normative programming. Withthis approach, while designers and agents s...
详细信息
ISBN:
(纸本)9783642149764
In this paper, we show how we can automatically translate high-level organisation modelling languages into simpler languages based on the idea of normative programming. Withthis approach, while designers and agents still use a highly abstract organisational modelling language to specify and reason about the multi-agent organisation, the development of the organisation management infrastructure is facilitated in the following manner. the high-level organisation specification is automatically translated into a simple normative programming language that we have recently introduced and for which we have given formal semantics. the organisation management infrastructure can then be based on an interpreter for the simpler normative language. We illustrate the approach showing how MOISE's organisation modelling language (with primitives such as roles, groups, and goals) can be translated into our normative programming language (with primitives such as norms and obligations). We briefly describe how this all has been implemented on top of ORA4MAS, the distributed artifact-based organisation management infrastructure for MOISE.
In this paper we present an agent language that combines agent functionality with an action theory and model-theoretic semantics. the language is based on abductive logic programming (ALP), but employs a simplified st...
详细信息
ISBN:
(纸本)9783642149764
In this paper we present an agent language that combines agent functionality with an action theory and model-theoretic semantics. the language is based on abductive logic programming (ALP), but employs a simplified state-free syntax, with an operational semantics that uses destructive assignment to manipulate a database, which represents the current state of the environment. the language builds upon the ALP combination of logic programs, to represent an agent's beliefs, and integrity constraints, to represent the agent's goals. Logic programs are used to define macro-actions, intensional predicates, and plans to reduce goals to sub-goals including actions. Integrity constraints are used to represent reactive rules, which are triggered by the current state of the database and recent agent actions and external events. the execution of actions and the assimilation of observations generate a sequence of database states. In the case of the successful solution of all goals, this sequence, taken as a whole, determines a model that makes the agent's goals and beliefs all true.
the proceedings contain 26 papers. the topics discussed include: how do you know? (that you have the right architecture);modeling at Ericsson - experiences and challenges;semi-automatic test case generation from busin...
ISBN:
(纸本)9789521522123
the proceedings contain 26 papers. the topics discussed include: how do you know? (that you have the right architecture);modeling at Ericsson - experiences and challenges;semi-automatic test case generation from business process models;code clones: good, bad, or ugly?;guidelines for JavaScript programs: are they still necessary?;scalability of parallel workloads: the effects of granularity and scheduling in video processing;towards more sophisticated access control;towards fully-fledged reverse inheritance in Eiffel;good to know about the efficiency of state space methods;restructuring erlang programs using function related refactorings;generative approach for extending computer role-playing games at run-time;and discovering a pattern language for embedded machine control systems using architecture evaluation methods.
In this work we present object net systems, i.e. Petri nets with nets as token objects, which are equipped with channels that allow to transfer net-tokens in the vertical dimension of the nested marking. these channel...
详细信息
In this work we present object net systems, i.e. Petri nets with nets as token objects, which are equipped with channels that allow to transfer net-tokens in the vertical dimension of the nested marking. these channels are a modelling element powerful enough to describe a direct simulation of counter programs which shows that typical net problems like boundedness, coverability, and reachability are undecidable.
Using metrics in software engineering usually entails developing custom measurement systems dedicated for particular stakeholders (project, product, and line managers). As processes for collecting, analyzing and prese...
详细信息
Generalization is common in object-oriented modelling. It would be useful in many situations also as a language mechanism, reverse inheritance, but there have been only few detailed proposals for that. this paper defi...
详细信息
暂无评论