While context-orientedprogramming technology so far has focused mostly on behavioral adaptation, context-oriented data management has received much less attention. In this paper we make a case for the problem of cont...
详细信息
Interactive development in self-supporting systems like Smalltalk or the Lively Kernel allows for an explorative and direct development workflow. Because of the immediate and direct feedback loops, changes to core beh...
详细信息
Writing applications that connect to external services and yet remain responsive and resource conscious is a difficult task. Withthe rise of web programmingthis has become a common problem. the solution lies in usin...
详细信息
ISBN:
(纸本)9783642310577;9783642310560
Writing applications that connect to external services and yet remain responsive and resource conscious is a difficult task. Withthe rise of web programmingthis has become a common problem. the solution lies in using asynchronous operations that separate issuing a request from waiting for its completion. However, doing so in common object-oriented languages is difficult and error prone. Asynchronous operations rely on callbacks, forcing the programmer to cede control. this inversion of control-flow impedes the use of structured control constructs, the staple of sequential code. In this paper, we describe the language support for asynchronous programming in the upcoming version of C-#. the feature enables asynchronous programming using structured control constructs. Our main contribution is a precise mathematical description that is abstract (avoiding descriptions of compiler-generated state machines) and yet sufficiently concrete to allow important implementation properties to be identified and proved correct.
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.
this book constitutes the refereed proceedings of the 26th european conference on object-oriented programming, ecoop 2012, held in Beijing, China, in June 2012. the 27 revised full papers presented together with two k...
详细信息
ISBN:
(数字)9783642310577
ISBN:
(纸本)9783642310560
this book constitutes the refereed proceedings of the 26th european conference on object-oriented programming, ecoop 2012, held in Beijing, China, in June 2012. the 27 revised full papers presented together with two keynote lectures were carefully reviewed and selected from a total of 140 submissions. the papers are organized in topical sections on extensibility, language evaluation, ownership and initialisation, language features, special-purpose analyses, javascript, hardcore theory, modularity, updates and interference, general-purpose analyses.
It is well known that big-step operational semantics are not suitable for proving soundness of type systems, because of their inability to distinguish stuck from non-terminating computations. We show how this problem ...
详细信息
ISBN:
(纸本)9783642310577;9783642310560
It is well known that big-step operational semantics are not suitable for proving soundness of type systems, because of their inability to distinguish stuck from non-terminating computations. We show how this problem can be solved by interpreting coinductively the rules for the standard big-step operational semantics of a Java-like language, thus making the claim of soundness more intuitive: whenever a program is well-typed, its coinductive operational semantics returns a value. Indeed, coinduction allows non-terminating computations to return values;this is proved by showing that the set of proof trees defining the semantic judgment forms a complete metric space when equipped with a proper distance function. In this way, we are able to prove soundness of a nominal type system w.r.t. the coinductive semantics. Since the coinductive semantics is sound w.r.t. the usual small-step operational semantics, the standard claim of soundness can be easily deduced.
X10 is an objectorientedprogramming language with a sophisticated type system (constraints, class invariants, non-erased generics, closures) and concurrency constructs (asynchronous activities, multiple places). Obj...
详细信息
ISBN:
(纸本)9783642310577;9783642310560
X10 is an objectorientedprogramming language with a sophisticated type system (constraints, class invariants, non-erased generics, closures) and concurrency constructs (asynchronous activities, multiple places). object initialization is a cross-cutting concern that interacts with all of these features in delicate ways that may cause type, runtime, and security errors. this paper discusses possible designs for object initialization, and the "hardhat" design chosen and implemented in X10 version 2.2. Our implementation includes a fixed-point inter-procedural (intra-class) data-flow analysis that infers, for each method called during initialization, the set of fields that are read, and those that are asynchronously and synchronously assigned. Our codebase of more than 200K lines of code only had 104 annotations. Finally, we formalize the essence of initialization checking with an effect system intended to complement a standard FJ style formalization of the type system for X10. this system is substantially simpler than the masked types of [10], and it is more practical (for X10) than the free-committed types of [12]. this is the first formalization of a type and (flow-sensitive) effect system for safe initialization in the presence of concurrency constructs.
this paper presents a new solution to the expression problem (EP) that works in OO languages with simple generics (including Java or C#). A key novelty of this solution is that advanced typing features, including F-bo...
详细信息
ISBN:
(纸本)9783642310577;9783642310560
this paper presents a new solution to the expression problem (EP) that works in OO languages with simple generics (including Java or C#). A key novelty of this solution is that advanced typing features, including F-bounded quantification, wildcards and variance annotations, are not needed. the solution is based on object algebras, which are an abstraction closely related to algebraic datatypes and Church encodings. object algebras also have much in common withthe traditional forms of the Visitor pattern, but without many of its drawbacks: they are extensible, remove the need for accept methods, and do not compromise encapsulation. We show applications of object algebras that go beyond toy examples usually presented in solutions for the expression problem. In the paper we develop an increasingly more complex set of features for a mini-imperative language, and we discuss a real-world application of object algebras in an implementation of remote batches. We believe that object algebras bring extensibility to the masses: object algebras work in mainstream OO languages, and they significantly reduce the conceptual overhead by using only features that are used by everyday programmers.
As software evolves, data types have to be extended, possibly with new data variants or new operations. object-oriented design is well-known to support data extensions well. In fact, most popular books showcase data e...
详细信息
this book constitutes the refereed proceedings of the 25theuropeanconference on object-orientedprogramming, ecoop 2011, held in Lancaster, UK, in July 2011. the 26 revised full papers, presented together withthree...
详细信息
ISBN:
(数字)9783642226557
ISBN:
(纸本)9783642226540
this book constitutes the refereed proceedings of the 25theuropeanconference on object-orientedprogramming, ecoop 2011, held in Lancaster, UK, in July 2011.
the 26 revised full papers, presented together withthree keynote lectures were carefully reviewed and selected from a total of 100 submissions. the papers cover topics such as empirical studies, mining, understanding, recommending, modularity, modelling and refactoring, aliasing and ownership; as well as memory optimizations.
暂无评论