Dependency injection is a hot topic among industrial developers using component frameworks. this paper first mentions that dependency injection and aspect-orientedprogramming share the same goal, which is to reduce d...
详细信息
ISBN:
(纸本)354027992X
Dependency injection is a hot topic among industrial developers using component frameworks. this paper first mentions that dependency injection and aspect-orientedprogramming share the same goal, which is to reduce dependency among components for better reusability. However, existing aspect-orientedprogramming languages/frameworks, in particular, AspectJ, are not perfectly suitable for expressing inter-component dependency with a simple and straightforward representation. their limited kinds of implicit construction of aspect instances (or implementations) cannot fully express inter-component dependency. this paper points out this fact and proposes our aspect-orientedprogramming system named GluonJ to address this problem. GluonJ allows developers to explicitly construct and associate an aspect implementation with aspect targets.
We developed an object-oriented model which can be used to simulate the negotiation process between two opposing parties. Two party negotiations involve three basic objects;''Negotiator/Opponent'', ...
详细信息
We developed an object-oriented model which can be used to simulate the negotiation process between two opposing parties. Two party negotiations involve three basic objects;''Negotiator/Opponent'', ''Issues'', and ''Umpire''. the first object represents the parties to a conflict. ''Issues'' are one or more issues in conflict. the ''Umpire'' is a special objectthat may force specific changes on the negotiation process that ''Negotiator'' and ''Opponent'' have little or no control over. the objects exchange structural and communicative moves that alter their properties.
We identify three design principles for reflection and metaprogramming facilities in objectorientedprogramming languages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: m...
详细信息
ISBN:
(纸本)1581138318
We identify three design principles for reflection and metaprogramming facilities in objectorientedprogramming languages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: meta-level facilities must be separated from base-level functionality. Ontological correspondence: the ontology of meta-level facilities should correspond to the ontology of the language they manipulate. Traditional/mainstream reflective architectures do not follow these precepts. In contrast, reflective APIs built around the concept of mirrors are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.
In aspect-orientedprogramming, pointcuts are used to describe crosscutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular r...
详细信息
ISBN:
(纸本)354027992X
In aspect-orientedprogramming, pointcuts are used to describe crosscutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning. We present an analysis which shows that current pointcut languages support localization of crosscutting concerns but are problematic with respect to information hiding. To cope withthe problem, we present a pointcut language that exploits information from different models of program semantics, such as the execution trace, the syntax tree, the heap, static type system, etc., and supports abstraction mechanisms analogous to functional abstraction. We show how this raises the abstraction level and modularity of pointcuts and present first steps toward an efficient implementation by means of a static analysis technique.
OpenMP is a directive-oriented paradigm for parallel programming applicable to shared memory parallel computers. On the other hand, High Performance Fortron (HPF) is also a directive-oriented paradigm but for distribu...
详细信息
OpenMP is a directive-oriented paradigm for parallel programming applicable to shared memory parallel computers. On the other hand, High Performance Fortron (HPF) is also a directive-oriented paradigm but for distributed memory machines. thus, it could be very interesting to compare their programming applicability and parallel performances. We have converted four SPEC OMP 2001 benchmark programs, which are written with OpenMP and designed to evaluate the performance of shared memory parallel computers, into HPF, and evaluated parallel performances. We also point out problems that we had faced during conversion, and discuss solutions for them. Finally, we have improved the HPF performance by modifying the original source code. We could get good performance with HPF quite similar to OpenMP with SWIM, and moderate performance with APSI.
Withthe emergence of multi-cores into the mainstream, there is a growing need for systems to allow programmers and automated systems to reason about data dependencies and inherent parallelism in imperative object-ori...
详细信息
ISBN:
(纸本)9783642119699
Withthe emergence of multi-cores into the mainstream, there is a growing need for systems to allow programmers and automated systems to reason about data dependencies and inherent parallelism in imperative object-oriented languages. In this paper we exploit the structure of object-oriented programs to abstract computational side-effects. We capture and validate these effects using a static type system. We use these as the basis of sufficient conditions for several different data and task parallelism patterns. We compliment our static type system with a lightweight runtime system to allow for parallelization in the presence of complex data flows. We have a functioning compiler and worked examples to demonstrate the practicality of our solution.
A common method to localize defects is to compare the coverage of passing and failing program runs: A method executed only in failing runs, for instance, is likely to point to the defect. However, some failures, occur...
详细信息
ISBN:
(纸本)354027992X
A common method to localize defects is to compare the coverage of passing and failing program runs: A method executed only in failing runs, for instance, is likely to point to the defect. However, some failures, occur only after a specific sequence of method calls, such as multiple deallocations of the same resource. Such sequences can be collected from arbitrary Java programs at low cost;comparing object-specific sequences predicts defects better than simply comparing coverage. In a controlled experiment, our technique pinpointed the defective class in 39% of all test runs.
Encapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. this is surprising, considerin...
详细信息
ISBN:
(纸本)1581138318
Encapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. this is surprising, considering that encapsulation is one of the most fundamental and important concepts behind object-orientedprogramming and that it is essential for writing programs that are maintainable and reliable, and that remain robust as they evolve. In this paper we describe the problems that are caused by insufficient encapsulation mechanisms and then present object-oriented encapsulation, a simple and uniform approach that solves these problems by bringing state of the art encapsulation features to dynamically typed languages. We provide a detailed discussion of our design rationales and compare them and their consequences to the encapsulation approaches used for statically typed languages. We also describe an implementation of object-oriented encapsulation in Smalltalk. Benchmarks of this implementation show that extensive use of object-oriented encapsulation results in a slowdown of less than 15 percent.
this paper deals withobjectoriented software implementation of the algorithms for transformation of the continuous-time linear systems to the discrete-time systems. these algorithms are used for displaying the basic...
详细信息
ISBN:
(纸本)9781467379397
this paper deals withobjectoriented software implementation of the algorithms for transformation of the continuous-time linear systems to the discrete-time systems. these algorithms are used for displaying the basic discrete-time systems characteristics: step response, impulse response and frequency response in PLC based tunnel simulator. State-space system representation and basic interconnection of the systems are also considered.
暂无评论