A service definition is an abstract specification of the behavior of a software component. It provides the interface between the users of an object and its (hidden) implementation. A protocol can be a part of a servic...
详细信息
ISBN:
(纸本)3540601600
A service definition is an abstract specification of the behavior of a software component. It provides the interface between the users of an object and its (hidden) implementation. A protocol can be a part of a service, definition. It captures the conditions under which interface operations can be invoked. this is of use for the designers of clients, but also for implementers of the service, at least if the protocol mechanism provides automatic (static or dynamic) acceptability checking of invocations or messages. Existing protocol formalisms are mostly based on finite state machines that describe legal orderings of messages. this is too limited, however, to model more complex services or to handle conditions that go beyond the ordering (such as access-control or time-dependencies) without referring to a service implementation. In this paper we explore a grammar-based approach to protocol definition, i.e. we define protocols as non-deterministic grammars extended with provisions for parallellism. the resulting protocols not only define legal message sequences but can also impose context-sensitive constraints on properties of messages, like its sender or a time stamp. Protocotols are truly abstract, i.e, independent of the implementation of a service. Since we want to investigate the kinds of constructs needed in specifying protocols we do not introduce a new notation, but instead express protocols as parsers written in a lazy functional language using a technique called combinator parsing. Besides giving a complete picture of the semantics of the constructs this also allows us to show how dynamic protocol checking can be provided. the approach is illustrated through several examples and its potential and limitations are discussed.
the component-oriented approaches to context-aware computing are discussed. Context-awareness is especially integral to pervasive or ambient computing, but can be used to control the behavior of any system that adapts...
详细信息
ISBN:
(纸本)354023988X
the component-oriented approaches to context-aware computing are discussed. Context-awareness is especially integral to pervasive or ambient computing, but can be used to control the behavior of any system that adapts to the circumstances in which it is used. Like most new software projects, many existing context-aware systems have been constructured using object-or component-roiented programming techniques. Many of the techniques being used ad hoc in context-aware applications might be better captured in tools, language or methods, conversely new developments in infrastructure. A wide range of techniques from object-oriented and component-oriented software engineering are contributing strongly to the development of context-aware systems.
this brief article sets out some personal observations about the development of object technology from its emergence until today, and suggests how it will develop in the future. 9; Springer-Verlag Berlin Heidelber...
详细信息
Modeling four aspect-orientedprogramming mechanisms shows the way in which each supports modular crosscutting. Comparing the models produces a clear three part characterization of what is required to support crosscut...
详细信息
ISBN:
(纸本)3540405313
Modeling four aspect-orientedprogramming mechanisms shows the way in which each supports modular crosscutting. Comparing the models produces a clear three part characterization of what is required to support crosscutting structure: a common frame of reference that two (or more) programs can use to connect with each other and each provide their semantic contribution.
this paper reports the activities that took place during the third edition of the workshop on Experiences in object-oriented Reengineering (Previous editions were held during ecoop’97 and ecoop’98 [3] [2]). this yea...
ISBN:
(纸本)354066954X
this paper reports the activities that took place during the third edition of the workshop on Experiences in object-oriented Reengineering (Previous editions were held during ecoop’97 and ecoop’98 [3] [2]). this year seventeen participants attended the workshop. the overall organization stayed the same. Prior to the workshop each participant was asked to read the full version of the submitted papers that have been edited as internal proceedings. then each participant presented his paper in 10 minutes followed by 10 minutes discussion. then during the afternoon the two focus groups were formed to discuss the following topics: (1) Metrics, Visualisation and Problem Detection, and (2) Program Understanding, (Re)-documentation and Refactoring Composition. Suggested further reading are the previous edition of the proceedings [2], the proceedings of this workshop containing the full versions of the papers[1], and look at the FAMOOS Esprit project whose main goal is reengineering objectoriented applications (http://***/~famoos, http://***/projects/FAMOOS/).
the ecoop workshop on Mobile object Systems was first organized in 1995 and has been held every year since. the first two episodes in the series ~ entitled “objects and Agents” (1995) and “Agents on the Move” (199...
ISBN:
(数字)9783540362081
ISBN:
(纸本)3540002332
the ecoop workshop on Mobile object Systems was first organized in 1995 and has been held every year since. the first two episodes in the series ~ entitled “objects and Agents” (1995) and “Agents on the Move” (1996) ~ were exploratory in nature, reflecting a growing awareness and interest in the possibilities of mobile code and mobile objects for Internet programming. Towards the end of the 1990s, Interest in the domain began to mature and several mobile object systems appeared in the research community. As a consequence, further editions of the Mobile object Systems workshop concentrated on specific aspects of mobile objects. For instance, the title of the 1997 workshop was “Operating System Support”, the theme of the 1998 workshop was “Security”, and the theme of the 1999 installment was “programming Language Support”.
this book constitutes the proceedings of the 28theuropeanconference on object-orientedprogramming, ecoop 2014, held in Uppsala, Sweden, in July/August 2014. the 27 papers presented in this volume were carefully rev...
详细信息
ISBN:
(数字)9783662442029
ISBN:
(纸本)9783662442012
this book constitutes the proceedings of the 28theuropeanconference on object-orientedprogramming, ecoop 2014, held in Uppsala, Sweden, in July/August 2014. the 27 papers presented in this volume were carefully reviewed and selected from 101 submissions. they are organized in topical sections named: analysis; design; concurrency; types; implementation; refactoring; JavaScript, PHP and frameworks; and parallelism.
Constraints provide a useful technique for ensuring that desired properties hold in an application. As a result, they have been used in a wide range of applications, including graphical layout, simulation, scheduling,...
详细信息
ISBN:
(纸本)9783662442029;9783662442012
Constraints provide a useful technique for ensuring that desired properties hold in an application. As a result, they have been used in a wide range of applications, including graphical layout, simulation, scheduling, and problem-solving. We describe the design and implementation of an object Constraint programming language, an object-oriented language that cleanly integrates constraints withthe underlying language in a way that respects encapsulation and standard object-orientedprogramming techniques, and that runs in browser-based applications. Prior work on object Constraint programming languages has relied on modifying the underlying Virtual Machine, but that is not an option for web-based applications, which have become increasingly prominent. In this paper, we present an approach to implementing object Constraint programming without Virtual Machine support, along with an implementation as a JavaScript extension. We demonstrate the resulting language, Babelsberg/JS, on a number of applications and provide performance measurements. Programs without constraints in Babelsberg/JS run at the same speed as pure JavaScript versions, while programs that do have constraints can still be run efficiently. Our design and implementation also incorporate incremental re-solving to support interaction, as well as a cooperating solvers architecture that allows multiple solvers to work together to solve more difficult problems.
Ownership type systems describe a heap topology and enforce an encapsulation discipline;they aid in various program correctness and understanding tasks. However, the annotation overhead of ownership type systems has h...
详细信息
ISBN:
(纸本)9783642310577;9783642310560
Ownership type systems describe a heap topology and enforce an encapsulation discipline;they aid in various program correctness and understanding tasks. However, the annotation overhead of ownership type systems has hindered their widespread use. We present a unified framework for specification, type inference and type checking of ownership type systems, and instantiate the framework for two such systems: Universe Types and Ownership Types. We present an objective metric defining a "best typing" for these type systems, and develop an inference approach that maximizes the metric. the programmer can influence the inference by adding partial annotations to the program. We implemented the approach on top of the Checker Framework and present the results of an experimental evaluation.
programming languages are enormously diverse, both in their essential concepts and in their accidental aspects. this creates a problem when teaching programming. To let students experience the diversity of essential c...
详细信息
ISBN:
(纸本)9783662442029;9783662442012
programming languages are enormously diverse, both in their essential concepts and in their accidental aspects. this creates a problem when teaching programming. To let students experience the diversity of essential concepts, the students must also be exposed to an overwhelming variety of accidental and irrelevant detail: the accidental differences between the languages are likely to obscure the teaching point. the dialect system of the Grace programming language allows instructors to tailor and vary the language to suit their courses, while staying within the same stylistic, syntactic and semantic framework, as well as permitting authors to define advanced internal domain-specific languages. the dialect system achieves this power though a combination of well-known language features: lexical nesting, lambda expressions, multi-part method names, optional typing, and plug-gable checkers. Grace's approach to dialects is validated by a series of case studies, including both extensions and restrictions of the base language.
暂无评论