Maintaining object-oriented systems that use inheritance and polymorphism is difficult, since runtime information, such as which methods are actually invoked at a call site, is not visible in the static source code. W...
详细信息
ISBN:
(纸本)9781424448975
Maintaining object-oriented systems that use inheritance and polymorphism is difficult, since runtime information, such as which methods are actually invoked at a call site, is not visible in the static source code. We have implemented Senseo, an Eclipse plugin enhancing Eclipse's static source views with various dynamic metrics, such as runtime types, the number of objects created, or the amount of memory allocated in particular methods.
Structural subtyping is popular in research languages, but all mainstream object-oriented languages use nominal subtyping. Since languages with structural subtyping are not in widespread use, the empirical questions o...
详细信息
ISBN:
(纸本)9783642005893
Structural subtyping is popular in research languages, but all mainstream object-oriented languages use nominal subtyping. Since languages with structural subtyping are not in widespread use, the empirical questions of whether and how structural subtyping is useful have thus far remained unanswered. This study aims to provide answers to these questions. We identified several criteria that are indicators that nominally typed programs could benefit from structural subtyping, and performed automated and manual analyses of open-source Java programs based on these criteria. Our results suggest that these programs could indeed be improved with the addition of structural subtyping. We hope this Study will provide guidance for language designers who are considering use of this subtyping discipline.
Statecharts are an important tool for specifying the behavior of reactive systems, and development tools can automatically generate object-oriented code from them. As the system is refactored, it is necessary to modif...
详细信息
ISBN:
(纸本)9783642049408
Statecharts are an important tool for specifying the behavior of reactive systems, and development tools can automatically generate object-oriented code from them. As the system is refactored, it is necessary to modify the associated statecharts as well, performing operations such as grouping or ungrouping states, extracting part of a statechart into a separate class, and merging states and transitions. Refactoring tools embedded in object-oriented development environments are making it much easier for developers to modify their programs. However, tool support for refactoring statecharts does not yet exist. As a result, developers avoid making certain changes that are too difficult to perform manually, even though design quality deteriorates. Methodologically, statecharts were meant to enable a systems engineer to describe a complete system, which would then be refined into a concrete implementation (object-oriented or other). This process is not supported by object-oriented development environments, which force each statechart to be specified as part of a class. Automated tool support for refactoring statecharts will also make this kind of refinement possible. This paper describes a case study that shows the usefulness of refactoring support for statecharts, and presents an initial catalog of relevant refactorings. We show that a top-down refinement process helps identify the tasks and classes in a natural way.
Traditional just-in-time compilers operate at the granularity of methods. Compiling a method in such a compiler is an atomic operation that can require substantial amounts of processing time, resulting in execution pa...
详细信息
ISBN:
(数字)9783642025716
ISBN:
(纸本)9783642025709
Traditional just-in-time compilers operate at the granularity of methods. Compiling a method in such a compiler is an atomic operation that can require substantial amounts of processing time, resulting in execution pauses in interactive computing environments. We describe a new software architecture for dynamic compilers in which the granularity of compilation steps is much finer, forming a "pipeline" with completely linear runtime behavior, and in which there are only two write barriers. This means that on future many-core platforms, the compiler itself can be parallelized, providing high-throughput dynamic compilation without execution pauses. As our prototype for Java demonstrates, stream-based compilation lends itself very naturally to an object-oriented implementation.
object-Orientation is now over forty years old. In that time, object-orientedprogramming has moved from a Scandinavian cult to a world-wide standard. In this talk I'll revisit the essential principles myths - of ...
详细信息
ISBN:
(纸本)9783642030123
object-Orientation is now over forty years old. In that time, object-orientedprogramming has moved from a Scandinavian cult to a world-wide standard. In this talk I'll revisit the essential principles myths - of of object-orientation, and discuss their role in the evolution of languages from SIMULA to Smalltalk to C++ to Java and beyond. Only by keeping the object-oriented faith can we ensure full-spectrum object-oriented dominance for the next forty years in the project for a new object-oriented century!
Telecommunication transport nodes are complex, distributed, event-driven and redundant in their nature. With an introduction of new transport layers and new functionalities, complexity of transport nodes has been incr...
详细信息
ISBN:
(纸本)9789531841313
Telecommunication transport nodes are complex, distributed, event-driven and redundant in their nature. With an introduction of new transport layers and new functionalities, complexity of transport nodes has been increasing in all its parts. The task of developing software for such a system becomes therefore more and more complex as well. The aim of this article is to show how the usage of software design patterns helps in designing software for transport nodes.
ICOOOLPS'2008 was the third edition of the ICOOOLPS workshop at ECOOP. ICOOOLPS intends to bring researchers and practitioners both from academia, and industry together, with a spirit of openness, to try and ident...
详细信息
ISBN:
(纸本)9783642020469
ICOOOLPS'2008 was the third edition of the ICOOOLPS workshop at ECOOP. ICOOOLPS intends to bring researchers and practitioners both from academia, and industry together, with a spirit of openness, to try and identity and begin to address the numerous and very varied issues of optimization. After two very successful editions, this third put a stronger emphasis on exchanges and discussions amongst the participants, progressing on the bases set previous years in Nantes and Berlin. The workshop attendance was relatively successful: There was about 20 attendees which was good considering the remote location and that the general attendance of ECOOP was much lower than expected. Some of the discussions (e.g., much of the afternoon sessions) were so successful that they would required even more time than we were able to dedicate to them. That is one area we plan to further improve vet again for the next, edition.
To structure the code of an Erlang program, one can split it into modules. There are also available some basic data structures: lists, records and tuples. However, there are no fully functional classes that encapsulat...
详细信息
ISBN:
(纸本)9781605585079
To structure the code of an Erlang program, one can split it into modules. There are also available some basic data structures: lists, records and tuples. However, there are no fully functional classes that encapsulate data and functionality, and can be extended with inheritance. We think these features could promote code reuse in certain cases, therefore we decided to extend the language with object-oriented capabilities. A strong. evidence of the usability of this is the fact that part of the program itself was rewritten using our newly created language elements, and the new version was simpler and cleaner than the original Erlang one. Our main goals were to preserve the single-assignment nature of Erlang and to keep method-call and value-access times constant. It was also a priority to make the extension easily installable, to reach as much developers as possible. For this, we avoided changes in the Erlang compiler itself. Instead, we created the extension as a parse transformation(1). In our implementation a class is a module that contain the methods, and a record type whose instances are the object instances. Both methods and fields can be inherited. We also examined the currently available other object-oriented extensions for Erlang, and compared them with ours. Our implementation has strong advantages, but it also lacks some features. Compatibility with records and speed are the main advantages. In this paper - among describing and comparing our extension - we also show the possible ways of adding the missing features.
The objective of the 1st International Workshop on Advanced Software Development Tools and Techniques (WASDeTT-1) wits to provide interested researchers with a forum to share their tool building experiences and to exp...
详细信息
ISBN:
(纸本)9783642020469
The objective of the 1st International Workshop on Advanced Software Development Tools and Techniques (WASDeTT-1) wits to provide interested researchers with a forum to share their tool building experiences and to explore how tools can be built more effectively and efficiently. The theme for this workshop did focus on tools that target object-oriented languages and that are implemented with object-oriented languages. This workshop report provides a brief overview of the presented tools and of the discussions that took place. The presented tools, 15 in total, covered it broad range Of functionalities, among them: refactoring, modeling, behavioral specification, static and dynamic program checking, user interface composition, and program understanding. The discussion during the workshop centered around the following topics: language independent tools, tool building in an industrial context, tool building methodology, tool implementation language, and building tools with external code.
Panini's Astadhyayi consists of sutras that capture fundamentals of Sanskrit: language and define its structure in terms of phonology, morphology and syntax. The Astadhyayi can be thought of as an automaton to gen...
详细信息
ISBN:
(纸本)9783540938842
Panini's Astadhyayi consists of sutras that capture fundamentals of Sanskrit: language and define its structure in terms of phonology, morphology and syntax. The Astadhyayi can be thought of as an automaton to generate words and sentences. In object oriented programming terms, prescribing sutras are objects having its transformation rule as its method. The meta rules or paribhasa sutras and paribhasa vartikas define the flow of the program. During application of sutras, conflicts may arise among two or more competing sutras. In this paper, computational structure of the Astadhyayi, sutra objects observing the environment, tree representation of sutras and mathematical representation of conflict resolution techniques are presented.
暂无评论