A survey of distributed deadlock detection algorithms
ACM SIGMOD Record
Distributed programming in Argus
Communications of the ACM
Lazy release consistency for software distributed shared memory
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
An overview of High Performance Fortran
ACM SIGPLAN Fortran Forum
Parallel programming in Split-C
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
The Coign automatic distributed partitioning system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Coordination languages and their significance
Communications of the ACM
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
The design of an acquisitional query processor for sensor networks
Proceedings of the 2003 ACM SIGMOD international conference on Management of data
From sequential programs to multi-tier applications by program transformation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Region streams: functional macroprogramming for sensor networks
DMSN '04 Proceeedings of the 1st international workshop on Data management for sensor networks: in conjunction with VLDB 2004
Programming ad-hoc networks of mobile and resource-constrained devices
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Design and implementation of a single system image operating system for ad hoc networks
Proceedings of the 3rd international conference on Mobile systems, applications, and services
Proceedings of the 3rd international conference on Embedded networked sensor systems
Proceedings of the 3rd international conference on Embedded networked sensor systems
Autolocker: synchronization inference for atomic sections
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Atomos transactional programming language
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Building up to macroprogramming: an intermediate language for sensor networks
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
The Tenet architecture for tiered sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
Declarative failure recovery for sensor networks
Proceedings of the 6th international conference on Aspect-oriented software development
Programming sensor networks using abstract regions
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
Macro-programming wireless sensor networks using Kairos
DCOSS'05 Proceedings of the First IEEE international conference on Distributed Computing in Sensor Systems
Deriving State Machines from TinyOS Programs Using Symbolic Execution
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
Stream-based macro-programming of wireless sensor, actuator network applications with SOSNA
Proceedings of the 5th workshop on Data management for sensor networks
Flask: staged functional programming for sensor networks
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
MacroLab: a vector-based macroprogramming framework for cyber-physical systems
Proceedings of the 6th ACM conference on Embedded network sensor systems
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Wishbone: profile-based partitioning for sensornet applications
NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
IPSN '09 Proceedings of the 2009 International Conference on Information Processing in Sensor Networks
A Language for Large Ensembles of Independently Executing Nodes
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
Macrodebugging: global views of distributed program execution
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
An integral approach to programming sensor networks
CCNC'09 Proceedings of the 6th IEEE Conference on Consumer Communications and Networking Conference
The Tenet architecture for tiered sensor networks
ACM Transactions on Sensor Networks (TOSN)
Bundle: a group based programming abstraction for cyber physical systems
Proceedings of the 1st ACM/IEEE International Conference on Cyber-Physical Systems
A modular and extensible macroprogramming compiler
Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications
Dynamically partitioning applications between weak devices and clouds
Proceedings of the 1st ACM Workshop on Mobile Cloud Computing & Services: Social Networks and Beyond
Adaptive spatiotemporal node selection in dynamic networks
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
Volley: automated data placement for geo-distributed cloud services
NSDI'10 Proceedings of the 7th USENIX conference on Networked systems design and implementation
WH '10 Wireless Health 2010
Programming wireless sensor networks: Fundamental concepts and state of the art
ACM Computing Surveys (CSUR)
CloneCloud: elastic execution between mobile device and cloud
Proceedings of the sixth conference on Computer systems
sMapReduce: a programming pattern for wireless sensor networks
Proceedings of the 2nd Workshop on Software Engineering for Sensor Network Applications
ACM Transactions on Embedded Computing Systems (TECS) - Special Section ESFH'12, ESTIMedia'11 and Regular Papers
Distributed Online Algorithms for the Agent Migration Problem in WSNs
Mobile Networks and Applications
Hi-index | 0.00 |
It is currently difficult to build practical and reliable programming systems out of distributed and resource-constrained sensor devices. The state of the art in today's sensornet programming is centered around a component-based language called nesC. nesC is a node-level language-a program is written for an individual node in the network-and nesC programs use the services of an operating system called TinyOS. We are pursuing an approach to programming sensor networks that significantly raises the level of abstraction over this practice. The critical change is one of perspective: rather than writing programs from the point of view of an individual node, programmers implement a central program that conceptually has access to the entire network. This approach pushes to the compiler the task of producing node-level programs that implement the desired behavio. We present the Pleiades programming language, its compiler, and its runtime. The Pleiades language extends the C language with constructs that allow programmers to name and access node-local state within the network and to specify simple forms of concurrent execution. The compiler and runtime system cooperate to implement Pleiades programs efficiently and reliably. First, the compiler employs a novel program analysis to translate Pleiades programs into message-efficient units of work implemented in nesC. The Pleiades runtime system orchestrates execution of these units, using TinyOS services, across a network of sensor nodes. Second, the compiler and runtime system employ novel locking, deadlock detection, and deadlock recovery algorithms that guarantee serializability in the face of concurrent execution. We illustrate the readability, reliability and efficiency benefits of the Pleiades language through detailed experiments, and demonstrate that the Pleiades implementation of a realistic application performs similar to a hand-coded nesC version that contains more than ten times as much code.