251,104 research outputs found
Qub: A Resource Aware Functional Programming Language
Managing resources---file handles, database connections, etc.---is a hard problem. Debugging resource leaks and runtime errors due to resource mismanagement are difficult in evolving production code. Programming languages with static type systems are great tools to ensure erroneous code is detected at compile time. However, modern static type systems do little in the aspect of resource management as resources are treated as normal values. We propose a type system, Qub, based on the logic of bunched implications (BI) which models resources as first class citizens. We distinguish two kinds of program objects---restricted and unrestricted---and two kinds of functions---sharing and separating. Our approach guarantees resource correctness without compromising existing functional abstractions
A trustworthy framework for resource-aware embedded programming
Funding: EU Horizon 2020 project, TeamPlay (https://www.teamplay-h2020.eu), grant number 779882; UK EPSRC Discovery, grant number EP/P020631/1.Systems with non-functional requirements, such as Energy, Time and Security (ETS), are of increasing importance due to the proliferation of embedded devices with limited resources such as drones, wireless sensors, and tablet computers. Currently, however, there are little to no programmer supported methodologies or frameworks to allow them to reason about ETS properties in their source code. Drive is one such existing framework supporting the developer by lifting non-functional properties to the source-level through the Contract Specification Language (CSL), allowing non-functional properties to be first-class citizens, and supporting programmer-written code-level contracts to guarantee the non-functional specifications of the program are met. In this paper, we extend the Drive system by providing rigorous implementations of the underlying proof-engine, modeling the specification of the annotations and assertions from CSL for a representative subset of C, called Imp. We define both an improved abstract interpretation that automatically derives proofs of assertions, and define inference algorithms for the derivation of both abstract interpretations and the context over which the interpretation is indexed. We use the dependently-typed programming language, Idris, to give a formal definition, and implementation, of our abstract interpretation. Finally, we show our well-formed abstract interpretation over some representative exemplars demonstrating provable assertions of ETS.Postprin
A framework for implementing formally verified resource-bounded smart space systems
© 2017, Springer Science+Business Media New York. Context-aware computing is a mobile computing paradigm that helps designing and implementing next generation smart applications, where personalized devices interact with users in smart environments. Development of such applications is inherently complex due to these applications adapt to changing contextual information and they often run on resource-bounded devices. Most of the existing context-aware development frameworks are centralized, adopt client–server architecture, and do not consider resource limitations of context-aware devices. This paper presents a systematic framework to modelling and implementation of resource-bounded multi-agent context-aware systems on Android devices. The proposed framework makes use of semantic technologies for context modelling and reasoning about resource-bounded context-aware agents, Android powered smartphones as development platform, a suitable communication model and declarative rule-based programming as a preferred development language
Distributed Interference-Aware Energy-Efficient Resource Allocation for Device-to-Device Communications Underlaying Cellular Networks
The introduction of device-to-device (D2D) into cellular networks poses many
new challenges in the resource allocation design due to the co-channel
interference caused by spectrum reuse and limited battery life of user
equipments (UEs). In this paper, we propose a distributed interference-aware
energy-efficient resource allocation algorithm to maximize each UE's energy
efficiency (EE) subject to its specific quality of service (QoS) and maximum
transmission power constraints. We model the resource allocation problem as a
noncooperative game, in which each player is self-interested and wants to
maximize its own EE. The formulated EE maximization problem is a non-convex
problem and is transformed into a convex optimization problem by exploiting the
properties of the nonlinear fractional programming. An iterative optimization
algorithm is proposed and verified through computer simulations.Comment: 6 pages, 3 figures, IEEE GLOBECOM 201
On Reliability-Aware Server Consolidation in Cloud Datacenters
In the past few years, datacenter (DC) energy consumption has become an
important issue in technology world. Server consolidation using virtualization
and virtual machine (VM) live migration allows cloud DCs to improve resource
utilization and hence energy efficiency. In order to save energy, consolidation
techniques try to turn off the idle servers, while because of workload
fluctuations, these offline servers should be turned on to support the
increased resource demands. These repeated on-off cycles could affect the
hardware reliability and wear-and-tear of servers and as a result, increase the
maintenance and replacement costs. In this paper we propose a holistic
mathematical model for reliability-aware server consolidation with the
objective of minimizing total DC costs including energy and reliability costs.
In fact, we try to minimize the number of active PMs and racks, in a
reliability-aware manner. We formulate the problem as a Mixed Integer Linear
Programming (MILP) model which is in form of NP-complete. Finally, we evaluate
the performance of our approach in different scenarios using extensive
numerical MATLAB simulations.Comment: International Symposium on Parallel and Distributed Computing
(ISPDC), Innsbruck, Austria, 201
Verification of Java Bytecode using Analysis and Transformation of Logic Programs
State of the art analyzers in the Logic Programming (LP) paradigm are
nowadays mature and sophisticated. They allow inferring a wide variety of
global properties including termination, bounds on resource consumption, etc.
The aim of this work is to automatically transfer the power of such analysis
tools for LP to the analysis and verification of Java bytecode (JVML). In order
to achieve our goal, we rely on well-known techniques for meta-programming and
program specialization. More precisely, we propose to partially evaluate a JVML
interpreter implemented in LP together with (an LP representation of) a JVML
program and then analyze the residual program. Interestingly, at least for the
examples we have studied, our approach produces very simple LP representations
of the original JVML programs. This can be seen as a decompilation from JVML to
high-level LP source. By reasoning about such residual programs, we can
automatically prove in the CiaoPP system some non-trivial properties of JVML
programs such as termination, run-time error freeness and infer bounds on its
resource consumption. We are not aware of any other system which is able to
verify such advanced properties of Java bytecode
- …