We present our ongoing work towards applying the context-oriented programming (COP) paradigm to wireless sensor networks (WSNs). Context-as a representation of the environment where the system operates-plays a key rol...
详细信息
ISBN:
(纸本)9781450322157
We present our ongoing work towards applying the context-oriented programming (COP) paradigm to wireless sensor networks (WSNs). Context-as a representation of the environment where the system operates-plays a key role in WSN applications, which must o?en adapt their operation depending on environmental conditions. We argue that promoting a notion of context as a first-class citizen in WSN programming facilitates the design and implementation of context-dependent functionality. To this end, we conceive a context-oriented programming model expressly tailored to WSNs, coupled with dedicated language constructs. Unlike the existing literature on COP, we embed the la?er within low-level C-like languages that do not rely on resource-intensive features such as dynamic memory management. To make our design concrete, we describe a context-oriented extension of nesC-a widely used WSN programminglanguage-and report on a preliminary assessment of our design.
The proceedings contain 52 papers. The topics discussed include: mining source code repositories with boa;Panini: a capsule-oriented programminglanguage for implicitly concurrent program design;finding architectural ...
详细信息
ISBN:
(纸本)9781450319959
The proceedings contain 52 papers. The topics discussed include: mining source code repositories with boa;Panini: a capsule-oriented programminglanguage for implicitly concurrent program design;finding architectural flaws in android apps is easy;finding the missing eclipse perspective: the runtime perspective;automated assessment of students' testing skills for improving correctness of their code;implementing a scripting language parser with self-extensible syntax;program transformation techniques applied to languages used in high performance computing;a secure play store for android;refactoring multicore applications towards energy efficiency;the poor man's proof assistant: using prolog to develop formal language theoretic proofs;dictionary-based query recommendation for local code search;a screen-oriented representation for mobile applications;and source code management for projectional editing.
Software product lines (SPL) gain momentum as a mean for developing and managing a set of related software systems under one umbrella. While intensive research on design and implementation of SPLs exist, the consequen...
详细信息
ISBN:
(纸本)9781450321686
Software product lines (SPL) gain momentum as a mean for developing and managing a set of related software systems under one umbrella. While intensive research on design and implementation of SPLs exist, the consequences of continuous evolution over time such as a decay of design or implementation have been neglected so far. In this context, refactoring has been shown to be an appropriate mean for improving the structure of source code. In this paper, we provide support for fine-grained program refactoring of feature-oriented SPLs. Particularly, we extend existing, object-oriented refactorings by taking the additional dimension of variability into account. To this end, we present the tool VAmPiRE as a basic framework for such refactorings and explain our considerations during implementation, which has been mainly guided by the idea of decomposing refactorings for ease and understandability. Additionally, we provide a detailed discussion about problems and limitations we faced during the implementation and come up with future challenges that have to be tackled for reliable and automated refactoring of software product lines. Copyright 2013 acm.
Grace is a gradually typed, object-oriented language for use in education. Grace needs a module system for several reasons: To teach students about modular program design, to organise large programs, especially its se...
详细信息
ISBN:
(纸本)9781450320412
Grace is a gradually typed, object-oriented language for use in education. Grace needs a module system for several reasons: To teach students about modular program design, to organise large programs, especially its self-hosted implementation, and to provide access to resources defined in other languages. Grace uses its basic organising construct, objects, to provide modules, and is then able to use its gradual structural typing to obtain a number of interesting features without any additional mechanisms.
Even when implemented in a purely procedural programminglanguage, properly designed programs possess elements of good design that are expressible through object-oriented constructs and concepts. For example, placing ...
详细信息
ISBN:
(纸本)9783642390388
Even when implemented in a purely procedural programminglanguage, properly designed programs possess elements of good design that are expressible through object-oriented constructs and concepts. For example, placing structured types and the procedures operating on them together in the same module achieves a weak form of encapsulation that reduces inter-module coupling. This paper presents a novel technique, and a supporting tool AutoOO, that extracts such implicit design elements from C applications and uses them to build reengineered object-oriented programs. The technique is completely automatic: users only provide a source C program, and the tool produces an object-oriented application written in Eiffel with the same input/output behavior as the source. An extensive evaluation on 10 open-source programs (including the editor vim and the math library libgsl) demonstrates that our technique works on applications of significant size and builds reengineered programs exhibiting elements of good object-oriented design, such as low coupling and high cohesion of classes, and proper encapsulation. The reengineered programs also leverage advanced features such as inheritance, contracts, and exceptions to achieve a better usability and a clearer design. The tool AutoOO is freely available for download.
This paper introduces Golo, a simple dynamic programminglanguage for the Java Virtual Machine (JVM) that has been designed to leverage the capabilities of the new Java 7 invokedynamic instruction and API (JSR 292). G...
详细信息
The emergence of multicore machines has made exploiting parallelism a necessity to harness the abundant computing resources in both a single machine and clusters. This, however, may hinder programming productivities a...
详细信息
The widely studied I/O and ideal-cache models were developed to account for the large difference in costs to access memory at different levels of the memory hierarchy. Both models are based on a two level memory hiera...
详细信息
The widely studied I/O and ideal-cache models were developed to account for the large difference in costs to access memory at different levels of the memory hierarchy. Both models are based on a two level memory hierarchy with a fixed size primary memory (cache) of size M, an unbounded secondary memory organized in blocks of size B. The cost measure is based purely on the number of block transfers between the primary and secondary memory. All other operations are free. Many algorithms have been analyzed in these models and indeed these models predict the relative performance of algorithms much more accurately than the standard RAM model. The models, however, require specifying algorithms at a very low level requiring the user to carefully lay out their data in arrays in memory and manage their own memory allocation. In this paper we present a cost model for analyzing the memory efficiency of algorithms expressed in a simple functional language. We show how some algorithms written in standard forms using just lists and trees (no arrays) and requiring no explicit memory layout or memory management are efficient in the model. We then describe an implementation of the language and show provable bounds for mapping the cost in our model to the cost in the ideal-cache model. These bound imply that purely functional programs based on lists and trees with no special attention to any details of memory layout can be as asymptotically as efficient as the carefully designed imperative I/O efficient algorithms. For example we describe an O (n/B log(M)/(B) n/B) cost sorting algorithm, which is optimal in the ideal cache and I/O models.
暂无评论