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.
objectorientedprogramming and design patterns introduce a high level of abstraction that allows us to implement and work with mathematical abstractions. We analyze and design an objectoriented algebraic library, th...
详细信息
ISBN:
(纸本)1581138334
objectorientedprogramming and design patterns introduce a high level of abstraction that allows us to implement and work with mathematical abstractions. We analyze and design an objectoriented algebraic library, that allows working not only with concrete algebraic structures, but also with abstract algebraic structures. The advantages of this approach mainly result from the usage of creational design patterns, reflection and dynamic loading, and representation independence. These introduce significant flexibility and abstraction. Using this library, we may work with abstract algebraic structures, such as: groups, rings, fields, etc., define new algebraic structures, and operate with them in abstract and concrete mathematical ways.
Encapsulation in object-orientedlanguages 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-orientedlanguages 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.
A discontinuity exists between object-oriented modeling and programminglanguages. This discontinuity arises from ambiguous concepts in modeling languages and a lack of corresponding concepts in programminglanguages....
详细信息
ISBN:
(纸本)1581138318
A discontinuity exists between object-oriented modeling and programminglanguages. This discontinuity arises from ambiguous concepts in modeling languages and a lack of corresponding concepts in programminglanguages. It is particularly acute for binary class relationships - association, aggregation, and composition. It hinders the traceability between software implementation and design, thus hampering software analysis. We propose consensual definitions of the binary class relationships with four minimal properties exclusivity, invocation site, lifetime, and multiplicity. We describe algorithms to detect automatically these properties in source code and apply these on several frameworks. Thus, we bridge the gap between implementation and design for the binary class relationships, easing software analysis.
object-orientedprogramminglanguages provide a rich set of features that provide significant software engineering benefits. The increased productivity provided by these features comes at a justifiable cost in a more ...
详细信息
ISBN:
(纸本)1581138318
object-orientedprogramminglanguages provide a rich set of features that provide significant software engineering benefits. The increased productivity provided by these features comes at a justifiable cost in a more sophisticated runtime system whose responsibility is to implement these features efficiently. However, the virtualization introduced by this sophistication provides a significant challenge to understanding complete system performance, not found in traditionally compiled languages, such as C or C++. Thus, understanding system performance of such a system requires profiling that spans all levels of the execution stack, such as the hardware, operating system, virtual machine, and application. In this work, we suggest an approach, called vertical profiling, that enables this level of understanding. We illustrate the efficacy of this approach by providing deep understandings of performance problems of Java applications run on a VM with vertical profiling support. By incorporating vertical profiling into a programming environment, the programmer will be able to understand how their program interacts with the underlying abstraction levels, such as application server, VM, operating system, and hardware.
The proceedings contain 101 papers. The topics discussed include: model driven development - the case for domain orientedprogramming;an end-to-end domain-driven software development framework;XAspects: an extensible ...
ISBN:
(纸本)1581137516
The proceedings contain 101 papers. The topics discussed include: model driven development - the case for domain orientedprogramming;an end-to-end domain-driven software development framework;XAspects: an extensible system for domain-specific aspect languages;the power of symmetry: unifying inheritance and generative programming;domain driven web development with WebJinn;automated impact analysis of object-oriented software systems;a demonstration of JPie: an environment for live software construction in Java;reuse learning objects through LOM and XML;QuickUML: a tool to support iterative design and code development;GME: the generic modeling environment;generative model transformer;semantic software engineering tools;a policy based system to incorporate self-managing behaviors in applications;using events to debug Java programs backwards in time;and issues on building T++, a tool for web application development with C++.
暂无评论