Catálogo de publicaciones - libros

Compartir en
redes sociales


ECOOP 2006: Object-Oriented Programming: 20th European Conference, Nantes, France, July 3-7, 2006, Proceedings

Dave Thomas (eds.)

En conferencia: 20º European Conference on Object-Oriented Programming (ECOOP) . Nantes, France . July 3, 2006 - July 7, 2006

Resumen/Descripción – provisto por la editorial

No disponible.

Palabras clave – provistas por la editorial

No disponibles.

Disponibilidad
Institución detectada Año de publicación Navegá Descargá Solicitá
No detectada 2006 SpringerLink

Información

Tipo de recurso:

libros

ISBN impreso

978-3-540-35726-1

ISBN electrónico

978-3-540-35727-8

Editor responsable

Springer Nature

País de edición

Reino Unido

Fecha de publicación

Información sobre derechos de publicación

© Springer-Verlag Berlin Heidelberg 2006

Tabla de contenidos

From ECOOP’87 to ECOOP 2006 and Beyond

Ole Lehrmann Madsen

ECOOP’87 marks the point in time where object-oriented programming started to become mainstream in research as well as in industry. In this paper we will reflect upon the contributions of object-orientation since then and discuss what we consider important challenges for the future.

- Special 20th Anniversary Session | Pp. 186-191

The Continuing Quest for Abstraction

Henry Lieberman

The history of Object-Oriented Programming can be interpreted as a continuing quest to capture the notion of – to create computational artifacts that represent the essential nature of a situation, and to ignore irrelevant details. Objects are defined by their essential behavior, not by their physical representation as data. The basic Object-Oriented paradigm of organizing programs as active objects and message passing has now been accepted by the mainstream, for which ECOOP can be justifiably proud. Future developments in the field will focus on capturing computational that can’t be expressed well simply by functional abstraction. Programming will evolve from textual programming languages to using natural language, graphics, demonstrated actions, and other techniques.

- Special 20th Anniversary Session | Pp. 192-197

Early Concurrent/Mobile Objects

Akinori Yonezawa

This essay just sketches my early investigations on the concept of objects which models concurrent activities of mobile entities that interact with each other in space.

- Special 20th Anniversary Session | Pp. 198-202

Turning the Network into a Database with Active XML

Serge Abiteboul

Because of information ubiquity, one observes an important trend towards transferring information management tasks from database systems to networks. We introduce the notion of data ring that can be seen as a network version of a database or a content warehouse. A main goal is to achieve better performance for content management without requiring the acquisition of explicit control over information resources. In this paper, we discuss the main traits of data rings and argue that Active XML provides an appropriate basis for such systems.

- Keynote | Pp. 203-205

SuperGlue: Component Programming with Object-Oriented Signals

Sean McDirmid; Wilson C. Hsieh

The assembly of components that can handle continuously changing data results in programs that are more interactive. Unfortunately, the code that glues together such components is often difficult to write because it is exposed to many complicated event-handling details. This paper introduces the SuperGlue language where components are assembled by connecting their , which declaratively represent state as time-varying values. To support the construction of interactive programs that require an unbounded number of signal connections, signals in SuperGlue are scaled with object-oriented abstractions. With SuperGlue’s combination of signals and objects, programmers can build large interactive programs with substantially less glue code when compared to conventional approaches. For example, the SuperGlue implementation of an email client is around half the size of an equivalent Java implementation.

- Languages | Pp. 206-229

Ambient-Oriented Programming in AmbientTalk

Jessie Dedecker; Tom Van Cutsem; Stijn Mostinckx; Theo D’Hondt; Wolfgang De Meuter

A new field in distributed computing, called Ambient Intelligence, has emerged as a consequence of the increasing availability of wireless devices and the mobile networks they induce. Developing software for mobile networks is extremely hard in conventional programming languages because the network is dynamically demarcated. This leads us to postulate a suite of characteristics of future languages. A simple reflective programming language, called AmbientTalk, that meets the characteristics is presented. It is validated by implementing a collection of high level language features that are used in the implementation of an ambient messenger application.

- Languages | Pp. 230-254

Responders: Language Support for Interactive Applications

Brian Chin; Todd Millstein

A variety of application domains are in nature: a primary task involves responding to external actions. In this paper, we introduce explicit programming language support for interactive programming, via the concept of a . Responders include a novel control construct that allows the interactive logic of an application to be naturally and modularly expressed. In contrast, the standard approaches to interactive programming, based on the event-driven style or the state design pattern, fragment this logic across multiple handlers or classes, with the control flow among fragments expressed only indirectly. We describe ResponderJ, an extension to Java supporting responders. A responder is simply a class with additional abilities, and these abilities interact naturally with the existing features of classes, including inheritance. We have implemented ResponderJ as an extension to the Polyglot compiler for Java. We illustrate ResponderJ’s utility in practice through two case studies: the implementation of a GUI supporting drag-and-drop functionality, and a re-implementation of the control logic of JDOM, a Java library for parsing and manipulating XML files.

- Languages | Pp. 255-278

Variance and Generalized Constraints for C Generics

Burak Emir; Andrew Kennedy; Claudio Russo; Dachuan Yu

Generic types in C behave invariantly with respect to subtyping. We propose a system of type-safe variance for C that supports the declaration of covariant and contravariant type parameters on generic types. To support more widespread application of variance we also generalize the existing constraint mechanism with arbitrary subtype assertions on classes and methods. This extension is useful even in the absence of variance, and subsumes equational constraints proposed for Generalized Algebraic Data Types (GADTs). We formalize the subtype relation in both declarative and syntax-directed style, and describe and prove the correctness of algorithms for constraint closure and subtyping. Finally, we formalize and prove a type safety theorem for a featherweight language with variant classes and generalized constraints.

- Type Theory | Pp. 279-303

A Semantic Analysis of C++ Templates

Jeremy Siek; Walid Taha

Templates are a powerful but poorly understood feature of the C++ language. Their resembles the parameterized classes of other languages (e.g., of Java). But because C++ supports template specialization, their is quite different from that of parameterized classes. Template specialization provides a Turing-complete sub-language within C++ that executes at compile-time. Programmers put this power to many uses. For example, templates are a popular tool for writing program generators.

The C++ Standard defines the semantics of templates using natural language, so it is prone to misinterpretation. The meta-theoretic properties of C++ templates have not been studied, so the semantics of templates has not been systematically checked for errors. In this paper we present the first formal account of C++ templates including some of the more complex aspects, such as template partial specialization. We validate our semantics by proving type safety and verify the proof with the Isabelle proof assistant. Our formalization reveals two interesting issues in the C++ Standard: the first is a problem with member instantiation and the second concerns the generation of unnecessary template specializations.

- Type Theory | Pp. 304-327

Session Types for Object-Oriented Languages

Mariangiola Dezani-Ciancaglini; Dimitris Mostrous; Nobuko Yoshida; Sophia Drossopoulou

A session takes place between two parties; after establishing a connection, each party interleaves local computations with communications (sending or receiving) with the other. Session types characterise such sessions in terms of the types of values communicated and the shape of protocols, and have been developed for the -calculus, CORBA interfaces, and functional languages. We study the incorporation of session types into object-oriented languages through , a multi-threaded language with session types, thread spawning, iterative and higher-order sessions. Our design aims to consistently integrate the object-oriented programming style and sessions, and to be able to treat various case studies from the literature. We describe the design of , its syntax, operational semantics and type system, and develop a type inference system. After proving subject reduction, we establish the progress property: once a communication has been established, well-typed programs will never starve at communication points.

- Type Theory | Pp. 328-352