The behavior of mobile applications is particularly affected by their execution context, such as location and state a the mobile device. Among other approaches, context-orientedprogramming can help to achieve context...
详细信息
ISBN:
(纸本)9781450308915
The behavior of mobile applications is particularly affected by their execution context, such as location and state a the mobile device. Among other approaches, context-orientedprogramming can help to achieve context-dependent behavior without sacrificing modularity or adhering to a certain framework or library by enabling fine-grained adaptation of default behavior per control-flow. However, context information relevant for mobile applications is mostly defined by external events and sensor data rather than by code and control flow. To accommodate this, the JCop language provides a more declarative approach by pointcut-like adaptation rules. In this paper, we explain how we applied JCop to the development of Android applications for which we extended the language semantics for static contexts and modified the compiler. Additionally, we outline the successful implementation of a simple, proof-of-concept mobile application using our approach and report on promising early evaluation results.
Good data layouts improve cache and TLB performance of object-oriented software, but unfortunately, selecting ail optimal data layout a priori is NP-hard. This paper introduces layout auditing, a technique that select...
详细信息
ISBN:
(纸本)9783540705918
Good data layouts improve cache and TLB performance of object-oriented software, but unfortunately, selecting ail optimal data layout a priori is NP-hard. This paper introduces layout auditing, a technique that selects the best among a set of layouts online (while the program is running). Layout auditing randomly applies different layouts over time and observes their performance. As it becomes confident about which layout performs best, it selects that layout with higher probability. But if a phase shift causes a different layout to perform better, layout, auditing learns the new best layout. We implemented our technique in a product;Java virtual machine, using copying generational garbage collection to produce different layouts, and tested it on 20 long-running beachmarks and 4 hardware platforms. Given my combination of benchmark and platform, layout auditing consistently performs close to the best layout for that combination, without requiring offline training.
In aspect-orientedprogramming, pointcuts are used to describe crosscutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular r...
详细信息
ISBN:
(纸本)354027992X
In aspect-orientedprogramming, pointcuts are used to describe crosscutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning. We present an analysis which shows that current pointcut languages support localization of crosscutting concerns but are problematic with respect to information hiding. To cope with the problem, we present a pointcut language that exploits information from different models of program semantics, such as the execution trace, the syntax tree, the heap, static type system, etc., and supports abstraction mechanisms analogous to functional abstraction. We show how this raises the abstraction level and modularity of pointcuts and present first steps toward an efficient implementation by means of a static analysis technique.
Programmers informally reason about object-oriented programs by using subtype relationships to classify the behavior of objects of different types and by letting su-pertypes stand for all their subtypes. We describe f...
详细信息
The proceedings contain 15 papers. The topics discussed include: object-orientedprogramming versus object-oriented design: what�s the connection?;foundations of object-based concurrent programming;structured analysis...
ISBN:
(纸本)0897914430
The proceedings contain 15 papers. The topics discussed include: object-orientedprogramming versus object-oriented design: what�s the connection?;foundations of object-based concurrent programming;structured analysis and objectoriented analysis;designing reusable designs: experiences designing object-oriented frame works;issues in object data management;OOP in the real world;garbage collection in object-oriented systems;third CLOS users and implementors workshop;transactions and objects;and graphics for objectoriented software engineering.
The objective of this workshop was to discuss current tools and environments for learning object-oriented concepts and to share ideas and experiences about the usage of computer support to teach the basic concepts of ...
详细信息
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...
详细信息
We describe support for modularity in Newspeak, a programming language descended from Smalltalk [33] and Self [69]. Like Self, all computation even an object's own access to its internal structure is performed by ...
详细信息
ISBN:
(纸本)9783642141065
We describe support for modularity in Newspeak, a programming language descended from Smalltalk [33] and Self [69]. Like Self, all computation even an object's own access to its internal structure is performed by invoking methods on objects. However, like Smalltalk, Newspeak is class-based. Classes can be nested arbitrarily, as in Beta [44]. Since all names denote method invocations, all classes are virtual;in particular, superclasses are virtual, so all classes act as mixins. Unlike its predecessors, there is no static state in Newspeak, nor is there a global namespace. Modularity in Newspeak is based exclusively on class nesting. There are no separate modularity constructs such as packages. Top level classes act as module definitions, which are independent, immutable, self-contained parametric namespaces. They can be instantiated into modules which may be stateful and mutually recursive.
One of the problems facing developers is the constant evolution of components that are used to build applications. This evolution is typical of any multi-person or multi-site software project. How can we program in th...
详细信息
ISBN:
(纸本)9783540705918
One of the problems facing developers is the constant evolution of components that are used to build applications. This evolution is typical of any multi-person or multi-site software project. How can we program in this environment? More precisely, how can language design address Such evolution? In this paper we attack two significant issues that arise from constant component evolution: we propose language-level extensions that permit Multiple, co-existing versions of classes and the ability to dynamically upgrade from one version of a class to another, whilst still maintaining type safety guarantees and requiring only lightweight extensions to the runtime infrastructure. We show how our extensions, whilst intuitive, provide a great deal of power by giving a number of examples. Given the subtlety of the problem, we formalize a core fragment of our language and prove a number of important safety properties.
This paper presents a formal system based on the notion of objects and asynchronous communication. Built on Milner’s work on π-calculus, the communication primitive of the formal system is purely based on asynchrono...
详细信息
暂无评论