Developing enterprise software often requires composing several libraries together with a large body of in-house code. Large APIs introduce a steep learning curve for new developers as a result of their complex object...
详细信息
ISBN:
(纸本)9783319216904;9783319216898
Developing enterprise software often requires composing several libraries together with a large body of in-house code. Large APIs introduce a steep learning curve for new developers as a result of their complex object-oriented underpinnings. While the written code in general reflects a programmer's intent, due to evolutions in an API, code can often become ill-typed, yet still syntactically-correct. Such code fragments will no longer compile, and will need to be updated. We describe an algorithm that automatically repairs such errors, and discuss its application to common problems in software engineering.
OpenMP has become increasingly prevalent due to the simplicity it offers to elegantly and incrementally introduce parallelism. However, it still lacks some high-level language features that are essential in object-ori...
详细信息
ISBN:
(纸本)9783319245959;9783319245942
OpenMP has become increasingly prevalent due to the simplicity it offers to elegantly and incrementally introduce parallelism. However, it still lacks some high-level language features that are essential in object-orientedprogramming. One such mechanism is that of exception handling. In languages such as Java, the concept of exception handling has been an integral aspect to the language since the first release. For OpenMP to be truly embraced within this object-oriented community, essential object-oriented concepts such as exception handling need to be given some attention. The official OpenMP standard has little specification on error recovery, as the challenges of supporting exception-based error recovery in OpenMP extends to both the semantic specifications and related runtime support. This paper proposes a systematic mechanism for exception handling with the co-use of OpenMP directives, which is based on a Java implementation of OpenMP. The concept of exception handling with OpenMP directives has been formalized and categorized. Hand in hand with this exception handling proposal, a flexible approach to thread cancellation is also proposed (as an extension on OpenMP directives) that supports this exception handling within parallel execution. The runtime support and its implementation are discussed. The evaluation shows that while there is no prominent overhead introduced, the new approach provides a more elegant coding style which increases the parallel development efficiency and software robustness.
This paper contributes to the theory of typed first-order logic. We present a sound and complete axiomatization for a basic typed logic lifting restrictions imposed by previous results. As a second contribution, this ...
详细信息
ISBN:
(纸本)9783319192499;9783319192482
This paper contributes to the theory of typed first-order logic. We present a sound and complete axiomatization for a basic typed logic lifting restrictions imposed by previous results. As a second contribution, this paper provides complete axiomatizations for the type predicates instance T, exactInstance T, and functions cast T indispensable for reasoning about object-orientedprogramming languages.
Reinforcement Learning - RL is an important agent problem that was not approached using the tools provided by Agent orientedprogramming - AOP. AgentSpeak(L) and its Jason implementation based on Java platform are rep...
详细信息
ISBN:
(纸本)9781479917808
Reinforcement Learning - RL is an important agent problem that was not approached using the tools provided by Agent orientedprogramming - AOP. AgentSpeak(L) and its Jason implementation based on Java platform are representing state-of-the-art approaches of AOP based on the Belief-Desire-Intention - BDI model. Temporal Difference Learning - TDL is a passive RL method that can be used by an agent to learn its utility function while it is acting according to a given policy in an uncertain and dynamic environment. In this paper we present an approach for modeling and implementation of TDL using the Jason AOP language. So, our paper is presenting a contribution towards narrowing the gap between RL and AOP, by endowing BDI agents with TDL skills.
The hierarchical method of organizing information has proven beneficial in learning in part because it maps well onto the human brain's memory. Exploiting this organizational strategy may help engineers cope with ...
详细信息
ISBN:
(纸本)9781467375290
The hierarchical method of organizing information has proven beneficial in learning in part because it maps well onto the human brain's memory. Exploiting this organizational strategy may help engineers cope with large software systems. In fact such an strategy is already present in source code and is manifested in the class hierarchies of objected-oriented programs. However, an engineer faced with fixing a bug or any similar need to locate the implementation of a particular feature in the code is less interested in the syntactic organization of the code and more interested in its conceptual organization. Therefore, a conceptual hierarchy would bring clear benefit. Fortunately, such a view can be extracted automatically the source code. The hierarchy generating tool HierIT performs this task using an information-theoretic approach to identify "content-bearing" words and associate them hierarchically. The resulting hierarchy enables an engineer to better understand the concepts contained in a software system. To study their value, an experiment was conducted to quantitatively and qualitatively investigate the value that hierarchies bring. The quantitative evaluation first considers the Expected Mutual Information Measure (EMIM) between the set of topic words and natural language extracted from the source code. It then considers the Best Case Tree Walk (BCTW), which captures how "expensive" it is to find interesting documents. Finally, the hierarchies are considered qualitatively by investigating their perceived usefulness in a case study involving three engineers.
Nowadays, learning and teaching outcomes are defined predominantly by target competencies. In order to assess learning outcomes, properly defined and empirically validated competency models are required. For object-or...
详细信息
ISBN:
(数字)9783319253961
ISBN:
(纸本)9783319253961;9783319253954
Nowadays, learning and teaching outcomes are defined predominantly by target competencies. In order to assess learning outcomes, properly defined and empirically validated competency models are required. For object-orientedprogramming, such models have not been brought forward up to now. Aiming to develop a competency structure and level model for this field, we have examined the structural knowledge of programming novices to derive its potential dimensions. The results suggest 6 dimensions. Additionally, we propose difficulty levels for two of these dimensions based on the SOLO taxonomy. The empirical validation of these dimensions and their levels is subject to further investigations.
Alias analysis has been an interesting research topic in verification and optimization of programs. The undecidability of determining whether two expressions in a program may reference to the same object is the main s...
详细信息
ISBN:
(数字)9783319175812
ISBN:
(纸本)9783319175812;9783319175805
Alias analysis has been an interesting research topic in verification and optimization of programs. The undecidability of determining whether two expressions in a program may reference to the same object is the main source of the challenges raised in alias analysis. In this paper we propose an extension of a previously introduced alias calculus based on program expressions, to the setting of unbounded program executions such as infinite loops and recursive calls. Moreover, we devise a corresponding executable specification in the K-framework. An important property of our extension is that, in a non-concurrent setting, the corresponding alias expressions can be over-approximated in terms of a notion of regular expressions. This further enables us to show that the associated K-machinery implements an algorithm that always stops and provides a sound over-approximation of the "may aliasing" information, where soundness stands for the lack of false negatives. As a case study, we analyze the integration and further applications of the alias calculus in SCOOP. The latter is an object-orientedprogramming model for concurrency, recently formalized in Maude;K definitions can be compiled into Maude for execution.
A typical feature of robotic architectures are its reactivity and self-adaptivity. In practice, this is achieved by context-dependent dynamic invocation of software components in robotic architectures. In this paper, ...
详细信息
ISBN:
(纸本)9781467391634
A typical feature of robotic architectures are its reactivity and self-adaptivity. In practice, this is achieved by context-dependent dynamic invocation of software components in robotic architectures. In this paper, we specifically address how this self-adaptation capability can be formally defined and modeled in an architecture-independent way. We propose a probabilistic approach that facilitates system design and dynamic runtime adaptation satisfying the quality requirements. We also show how such techniques are incorporated in our model-driven framework: Self Adaptive Framework for Robotic Systems.
The power of aspect-oriented modelling is that structural and behavioural properties of a crosscutting concern can be modularized within an aspect model. With proper care, such an aspect model can also be made reusabl...
详细信息
ISBN:
(数字)9783319211510
ISBN:
(纸本)9783319211510;9783319211503
The power of aspect-oriented modelling is that structural and behavioural properties of a crosscutting concern can be modularized within an aspect model. With proper care, such an aspect model can also be made reusable. If the functionality provided by such a modularized concern is needed repeatedly within a system, the reusable aspect model can be applied multiple times within the same target model. This paper reviews the pending issues related to multiple aspect model instantiations identified in past research, and then proposes to extend the customization interface of aspect models with instantiation cardinalities. This removes potential customization ambiguities for the model user, and gives the model designer fine-grained control about how many instances of each structural and behavioural element contained in an aspect model are to be created in the target model. The approach is illustrated by presenting the aspect-oriented design of a behavioural, a structural and a creational design pattern.
Component-based software development provides a modular approach to develop complex software systems. In the context of real-time systems, it is desirable to abstract the timing properties of software components using...
详细信息
ISBN:
(纸本)9781467378550
Component-based software development provides a modular approach to develop complex software systems. In the context of real-time systems, it is desirable to abstract the timing properties of software components using an interface for each component. The timing properties of the whole system, composed of multiple components, is studied using the component interfaces. In this paper we focus on periodic interface models. In the case of components developed for single processor platforms, for examining the system schedulability, the interfaces can be regarded as periodic tasks. Thus, making it possible to use the conventional schedulability analyses for the system level schedulability test. In the case of components developed for multiprocessors, since interfaces may have utilization larger than 100 % of a single processor, it is not possible to directly use the component interfaces for the system schedulability test. Therefore, the interfaces have to be decomposed before performing the system level schedulability test. In this paper, we target the special case of partitioned EDF for scheduling the components integrated on a multiprocessor. Therefore, the system level schedulability test is equivalent to finding a feasible allocation of component interfaces on the multiprocessor. We propose two algorithms for allocating the multiprocessor periodic interfaces. In addition, we propose an orthogonal approach for developing component-based real-time systems on multiprocessors in which components with utilization more than 100 % of a single processor are divided into smaller subcomponents before abstracting their interfaces. We show, through extensive evaluations, that our alternative approach significantly reduces the interface overhead.
暂无评论