Statecharts: A visual formalism for complex systems
Science of Computer Programming
Communicating Real-Time State Machines
IEEE Transactions on Software Engineering - Special issue: specification and analysis of real-time systems
Hardware-software co-design of embedded systems: the POLIS approach
Hardware-software co-design of embedded systems: the POLIS approach
Real-Time Systems and Software
Real-Time Systems and Software
Introduction to High-Level Synthesis
IEEE Design & Test
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Smart-Its Friends: A Technique for Users to Easily Establish Connections between Smart Artefacts
UbiComp '01 Proceedings of the 3rd international conference on Ubiquitous Computing
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
MANTIS: system support for multimodAl NeTworks of in-situ sensors
WSNA '03 Proceedings of the 2nd ACM international conference on Wireless sensor networks and applications
EnviroTrack: Towards an Environmental Computing Paradigm for Distributed Sensor Networks
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
TAG: a Tiny AGgregation service for Ad-Hoc sensor networks
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Design and implementation of a framework for efficient and programmable sensor networks
Proceedings of the 1st international conference on Mobile systems, applications and services
Why events are a bad idea (for high-concurrency servers)
HOTOS'03 Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9
Toward self-organized mobile ad hoc networks: the terminodes project
IEEE Communications Magazine
SpecCharts: a VHDL front-end for embedded systems
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
A file system for system programming in ubiquitous computing
Personal and Ubiquitous Computing
Protothreads: simplifying event-driven programming of memory-constrained embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
Abstractions for safe concurrent programming in networked embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
Increasing the reliability of wireless sensor networks with a distributed testing framework
Proceedings of the 4th workshop on Embedded networked sensors
Programming models for sensor networks: A survey
ACM Transactions on Sensor Networks (TOSN)
State-oriented programming for TinyOS
Proceedings of the 2007 Summer Computer Simulation Conference
A Wireless Sensor Network for Real-Time Indoor Localisation and Motion Monitoring
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
The LiteOS Operating System: Towards Unix-Like Abstractions for Wireless Sensor Networks
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
Deriving State Machines from TinyOS Programs Using Symbolic Execution
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
SPS: a middleware for multi-user sensor systems
Proceedings of the 5th international workshop on Middleware for pervasive and ad-hoc computing: held at the ACM/IFIP/USENIX 8th International Middleware Conference
Ruling Networks with RDL: A Domain-Specific Language to Task Wireless Sensor Networks
RuleML '08 Proceedings of the International Symposium on Rule Representation, Interchange and Reasoning on the Web
Programming wireless sensor networks with the TeenyLime middleware
Proceedings of the ACM/IFIP/USENIX 2007 International Conference on Middleware
A case study on prototyping power management protocols for sensor networks
SSS'06 Proceedings of the 8th international conference on Stabilization, safety, and security of distributed systems
A concurrency abstraction for reliable sensor network applications
Proceedings of the 12th Monterey conference on Reliable systems on unreliable networked platforms
Programming wireless sensor networks with the TeenyLIME middleware
MIDDLEWARE2007 Proceedings of the 8th ACM/IFIP/USENIX international conference on Middleware
PicOS tuples: easing event based programming in tiny pervasive systems
Proceedings of the 7th International Workshop on Model-Based Methodologies for Pervasive and Embedded Software
Loosely-coupled distributed reactive programming in mobile ad hoc networks
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
A hybrid visual dataflow language for coordination in mobile ad hoc networks
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Safe system-level concurrency on resource-constrained nodes
Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems
Hi-index | 0.00 |
Event-driven programming is a popular paradigm for programming sensor nodes. It is based on the specification of actions (also known as event handlers) which are triggered by the occurrence of events. While this approach is both simple and efficient, it suffers from two important limitations. Firstly, the association of events to actions is static--there is no explicit support for adopting this association depending on the program state. Secondly, a program is split up into many distinct actions without explicit support for sharing information among these. These limitations often lead to issues with code modularity, complexity, and correctness. To tackle these issues we propose OSM, a programming model and language for sensor nodes based on finite state machines. OSM extends the event paradigm with states and transitions, such that the invocation of actions becomes a function of both the event and the program state. For removing the second limitation, OSM introduces state attributes that allow sharing of information among actions. They can be considered local variables of a state with support for automatic memory management. OSM specifications can be compiled into sequential C code that requires only minimal runtime support, resulting in efficient and compact systems.