JIVE represents a novel approach to runtime visualization and analysis of Java programs. It facilitates program understanding and interactive debugging, featuring: multiple, customizable views of object structure;repr...
详细信息
ISBN:
(纸本)1581138334
JIVE represents a novel approach to runtime visualization and analysis of Java programs. It facilitates program understanding and interactive debugging, featuring: multiple, customizable views of object structure;representation of execution history via sequence diagrams;interactive queries on runtime behavior;forward and reverse interactive execution. JIVE uses standard JVM and compilers.
In this paper we present aspect-orientedprogramming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behavior. We illustrate t...
详细信息
ISBN:
(纸本)1581138334
In this paper we present aspect-orientedprogramming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behavior. We illustrate that by deriving several AspectJ refactorings. We also show that our laws are useful for restructuring two Java applications with the aim of using aspects to modularize common crosscutting concerns.
As bases for object-orientation, both class-based and prototype-based organization have limitations. We argue that roles have significant benefits as a foundation for organizing objects. We further argue that these be...
详细信息
ISBN:
(纸本)1581138334
As bases for object-orientation, both class-based and prototype-based organization have limitations. We argue that roles have significant benefits as a foundation for organizing objects. We further argue that these benefits can be realised most flexibly using logic meta-programming. Additional benefits from this approach are to reduce redundancy and subsume aspects.
In previous work, we have shown that multicodes can be used to improve the performance of Java applications. We extend that work by both implementing more multicodes and considering multicodes of greater length. This ...
详细信息
ISBN:
(纸本)1581138334
In previous work, we have shown that multicodes can be used to improve the performance of Java applications. We extend that work by both implementing more multicodes and considering multicodes of greater length. This has resulted in significantly larger performance gains than those that have been achieved previously for some benchmarks.
This paper outlines our project to help beginners learn to program by showing object visualisations driven by aspect-orientedprogramming, and presented as part of the Eclipse development platform. The aspect-oriented...
详细信息
ISBN:
(纸本)1581138334
This paper outlines our project to help beginners learn to program by showing object visualisations driven by aspect-orientedprogramming, and presented as part of the Eclipse development platform. The aspect-orientedprogramming is part of the infrastructure we use to drive the visualisations that help students learn object-orientedprogramming. Aspect-orientedprogramming explicitly supports the kind of cross-cutting concerns that allows our system to drive visualisations that emphasise principles of object interaction. Our extensions to Eclipse allow us to provide this educational scaffolding to help learners, without altering the program, the programming language or the libraries.
The introduction of programming education with object-orientedlanguages slowly migrates down the curriculum and is now often introduced at the high school level. This migration requires teaching tools that are adequa...
详细信息
ISBN:
(纸本)1581138334
The introduction of programming education with object-orientedlanguages slowly migrates down the curriculum and is now often introduced at the high school level. This migration requires teaching tools that are adequate for the intended target audience. In this paper, we present a new tool, named greenfoot, for teaching object-orientedprogramming aimed at students at or below college level, with special emphasis of supporting school age learners. Greenfoot was designed by analysing and combining the most beneficial aspects of several existing tools. It aims at combining the simplicity and visual appeal of microworlds with much of the flexibility and interaction of BlueJ. To achieve its goals of providing a suitable learners' environment, greenfoot provides a meta-framework that allows easy creation of different, significantly varied microworlds.
objects first is a pedagogy that tries to introduce the core concepts of object-orientedprogramming - classes, objects, and methods - as early as possible in a programming course, even before variables, types, assign...
详细信息
ISBN:
(纸本)1581138334
objects first is a pedagogy that tries to introduce the core concepts of object-orientedprogramming - classes, objects, and methods - as early as possible in a programming course, even before variables, types, assignments and control structures are explicitly introduced. The concept of a named interface is typically introduced at a much later stage, usually in connection with inheritance, polymorphism, and abstract classes. In this paper we point out that interfaces as a language mechanism can be introduced much earlier, even before inheritance. This way the concept of an explicit class interface can be decoupled from the more complicated issues of inheritance and subtype-polymorphism.
We describe a novel approach to runtime visualization of object-oriented programs. Our approach features: visualizations of execution state and history;forward and reverse execution;interactive queries during program ...
详细信息
ISBN:
(纸本)1581138334
We describe a novel approach to runtime visualization of object-oriented programs. Our approach features: visualizations of execution state and history;forward and reverse execution;interactive queries during program execution;and advanced drawing capabilities involving a combination of compile-time and runtime-analysis. Our methodology is realized in a software tool called JIVE, for Java Interactive Visualization Environment.
We identify three design principles for reflection and metaprogramming facilities in objectorientedprogramminglanguages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: m...
详细信息
ISBN:
(纸本)1581138318
We identify three design principles for reflection and metaprogramming facilities in objectorientedprogramminglanguages. 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.
The main goal of this PhD thesis is to propose and implement a methodology for the construction of programs based on the SCOOP model, and for modular reasoning about their correctness and liveness properties. In parti...
详细信息
ISBN:
(纸本)1581138334
The main goal of this PhD thesis is to propose and implement a methodology for the construction of programs based on the SCOOP model, and for modular reasoning about their correctness and liveness properties. In particular, the set of correctness rules that guarantee the absence of data races will be refined and formalized;an augmented type system will be proposed to enforce these rules at compile time. Furthermore, an efficient methodology for deadlock prevention, avoidance, detection, and resolution will be developed. A working implementation of SCOOP will be provided. It will take into consideration the proposed mechanisms and serve as a basis for further refinements of the model.
暂无评论