The Squawk virtual machine is a small Java™ virtual machine (VM) written mostly in Java that runs without an operating system on a wireless sensor platform. Squawk translates standard class file into an internal pre-l...
详细信息
The Squawk virtual machine is a small Java™ virtual machine (VM) written mostly in Java that runs without an operating system on a wireless sensor platform. Squawk translates standard class file into an internal pre-linked, position independent format that is compact and allows for efficient execution of bytecodes that have been placed into a read-only memory. In addition, Squawk implements an application isolation mechanism whereby applications are represented as object and are therefore treated as first class objects (i.e., they can be reified): Application isolation also enables Squawk to run multiple applications at once with all immutable state being shared between the applications. Mutable state is not shared. The combination of these features reduce the memory footprint of the VM, making it ideal for deployment on small devices. Squawk provides a wireless API that allows developers to write applications for wireless sensor networks (WSNs), this API is an extension of the generic connection framework (GCF). Authentication of deployed files on the wireless device and migration of applications between devices is also performed by the VM. This paper describes the design and implementation of the Squawk VM as applied to the Sun™ Small Programmable Object Technology (SPOT) wireless device;a device developed at Sun Microsystems Laboratories for experimentation with wireless sensor and actuator applications.
One of the more controversial topics to appear within the field of Computer Science has been the theory of Structured programming and the specific tools and techniques associated with this generic title. With respect ...
详细信息
Numerous papers and conference talks have recently been devoted to the affirmation or reaffirmation of various common-sense principles of computer program design and implementation, particularly with respect to operat...
详细信息
The disadvantages of traditional two-phase parsing (a scanner phase preprocessing input for a parser phase) are discussed. We present metalanguage enhancements for context-free grammars that allow the syntax of progra...
详细信息
The disadvantages of traditional two-phase parsing (a scanner phase preprocessing input for a parser phase) are discussed. We present metalanguage enhancements for context-free grammars that allow the syntax of programminglanguages to be completely described in a single grammar. The enhancements consist of two new grammar rules, the exclusion rule, and the adjacency-restriction rule. We also present parser construction techniques for building parsers from these enhanced grammars, that eliminate the need for a scanner phase.
The proceedings contain 49 papers. The topics discussed include: the Howitzer improvement program: lessons learned;requirements analysis for large Ada programs: lessons learned on CCPDS-R;Ada implementation of an x wi...
ISBN:
(纸本)0897913299
The proceedings contain 49 papers. The topics discussed include: the Howitzer improvement program: lessons learned;requirements analysis for large Ada programs: lessons learned on CCPDS-R;Ada implementation of an x window system server;the software lifecycle with Ada: a command and control application;software design documentation approach for a DOD-STD-2167A Ada project;experiences in preparing a DOD-STD-21 WA software design document for an Ada project;environment for operational software engineering in Ada;workstation/APSE productivity study results;and design issues and team support: experiences of an Ada tool vendor.
Embodied agents or humanoid avatars may effectively be used to communicate with human users. Currently there is a wide range of specification formalisms and scripting languages for embodied agents, many of which are o...
详细信息
Embodied agents or humanoid avatars may effectively be used to communicate with human users. Currently there is a wide range of specification formalisms and scripting languages for embodied agents, many of which are of a somewhat ad hoc nature lacking clear semantics. In this paper, we discuss the implementation of a scripting language for humanoid avatars in VRML/X3D-based environments. The scripting language STEP is based on dynamic logic, which provides a clear semantics for complex behavioral patterns. Moreover, the implementation of STEP is realized in a platform that extends VRML/X3D with distributed logic programming (DLP), which provides the computational support necessary to realize such complex behavioral patterns as well as the interaction with a (rich media) 3D environment. As an application example, we will discuss the development of an instructional VR for Tai Chi (the Chinese art of movement), illustrating how our approach allows for the creation of reusable libraries of behavioral patterns. We will discuss some implementation issues, in particular how to realize parallel actions and synchronization within an environment.
Access to the variety of resources offered by computer networks is often complicated by the diversity of interfaces and protocols encountered. To overcome this diversity, a command-and-response language interface to a...
详细信息
ISBN:
(纸本)0818608420
Access to the variety of resources offered by computer networks is often complicated by the diversity of interfaces and protocols encountered. To overcome this diversity, a command-and-response language interface to a network of heterogeneous systems is proposed. A brief account of previous work in command languages and system interfaces motivates the study of a prototype of the proposed interface. The design, implementation, and lessons learned through the successful realization of the prototype are presented.
Web computing is gradually shifting toward mobile devices, in which the energy budget is severely constrained. As a result, Web developers must be conscious of energy efficiency. However, current Web languages provide...
详细信息
Web computing is gradually shifting toward mobile devices, in which the energy budget is severely constrained. As a result, Web developers must be conscious of energy efficiency. However, current Web languages provide developers little control over energy consumption. In this paper, we take a first step toward language-level research to enable energy-efficient Web computing. Our key motivation is that mobile systems can wisely budget energy usage if informed with user quality-of-service (QoS) constraints. To do this, programmers need new abstractions. We propose two language abstractions, QoS type and QoS target, to capture two fundamental aspects of user QoS experience. We then present Green Web, a set of language extensions that empower developers to easily express the QoS abstractions as program annotations. As a proof of concept, we develop a GreenWeb runtime, which intelligently determines how to deliver specified user QoS expectation while minimizing energy consumption. Overall, GreenWeb shows significant energy savings (29.2% similar to 66.0%) over Android's default Interactive governor with few QoS violations. Our work demonstrates a promising first step toward language innovations for energy-efficient Web computing.
Software-defined networking (SDN) programs must simultaneously describe static forwarding behavior and dynamic updates in response to events. Event-driven updates are critical to get right, but difficult to implement ...
详细信息
Software-defined networking (SDN) programs must simultaneously describe static forwarding behavior and dynamic updates in response to events. Event-driven updates are critical to get right, but difficult to implement correctly due to the high degree of concurrency in networks. Existing SDN platforms offer weak guarantees that can break application invariants, leading to problems such as dropped packets, degraded performance, security violations, etc. This paper introduces event-driven consistent updates that are guaranteed to preserve well-defined behaviors when transitioning between configurations in response to events. We propose network event structures (NESs) to model constraints on updates, such as which events can be enabled simultaneously and causal dependencies between events. We define an extension of the NetKAT language with mutable state, give semantics to stateful programs using NESs, and discuss provably-correct strategies for implementing NESs in SDNs. Finally, we evaluate our approach empirically, demonstrating that it gives well-defined consistency guarantees while avoiding expensive synchronization and packet buffering.
We present CONCURRIT, a domain-specific language (DSL) for reproducing concurrency bugs. Given some partial information about the nature of a bug in an application, a programmer can write a CONCURRIT script to formall...
详细信息
ISBN:
(纸本)9781450320146
We present CONCURRIT, a domain-specific language (DSL) for reproducing concurrency bugs. Given some partial information about the nature of a bug in an application, a programmer can write a CONCURRIT script to formally and concisely specify a set of thread schedules to explore in order to find a schedule exhibiting the bug. Further, the programmer can specify how these thread schedules should be searched to find a schedule that reproduces the bug. We implemented CONCURRIT as an embedded DSL in C++, which uses manual or automatic source instrumentation to partially control the scheduling of the software under test. Using CONCURRIT, we were able to write concise tests to reproduce concurrency bugs in a variety of benchmarks, including the Mozilla's SpiderMon-key JavaScript engine, Memcached, Apache's HTTP server, and MySQL.
暂无评论