Statecharts: A visual formalism for complex systems
Science of Computer Programming
The discoveries of continuations
Lisp and Symbolic Computation - Special issue on continuations—part I
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Maté: a tiny virtual machine for sensor networks
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
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
A Communication Architecture and Programming Abstractions for Real-Time Embedded Sensor Networks
ICDCSW '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
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
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
TinyGALS: a programming model for event-driven embedded systems
Proceedings of the 2003 ACM symposium on Applied computing
An adaptive energy-efficient MAC protocol for wireless sensor networks
Proceedings of the 1st international conference on Embedded networked sensor systems
TinyDB: an acquisitional query processing system for sensor networks
ACM Transactions on Database Systems (TODS) - Special Issue: SIGMOD/PODS 2003
Full TCP/IP for 8-bit architectures
Proceedings of the 1st international conference on Mobile systems, applications and services
A dynamic operating system for sensor nodes
Proceedings of the 3rd international conference on Mobile systems, applications, and services
Event-driven programming for robust software
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Building up to macroprogramming: an intermediate language for sensor networks
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Beyond event handlers: programming wireless sensors with attributed state machines
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Run-time dynamic linking for reprogramming wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
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
Making events less slippery with eel
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
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
Run-time dynamic linking for reprogramming wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
RETOS: resilient, expandable, and threaded operating system for wireless sensor networks
Proceedings of the 6th international conference on Information processing in sensor networks
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Kensho: a dynamic tasking architecture for sensor networks
ACM SIGBED Review - Special issue on the workshop on wireless sensor network architecture (April-2007)
Distributed computation in wireless ad hoc grids with bandwidth control
Proceedings of the 5th international conference on Embedded networked sensor systems
Programming models for sensor networks: A survey
ACM Transactions on Sensor Networks (TOSN)
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
SpotCore: a power-efficient embedded processor for intelligent sensor networks
Proceedings of the ICST 2nd international conference on Body area networks
Making sensor networks IPv6 ready
Proceedings of the 6th ACM conference on Embedded network sensor systems
Darjeeling, a Java compatible virtual machine for microcontrollers
Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion
Implementing Flexible Parallelism for Modular Self-reconfigurable Robots
SIMPAR '08 Proceedings of the 1st International Conference on Simulation, Modeling, and Programming for Autonomous Robots
Serving embedded content via web applications: model, design and experimentation
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
TOSThreads: thread-safe and non-invasive preemption in TinyOS
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Multithreading optimization techniques for sensor network operating systems
EWSN'07 Proceedings of the 4th European conference on Wireless sensor networks
Escalation: complex event detection in wireless sensor networks
EuroSSC'07 Proceedings of the 2nd European conference on Smart sensing and context
Device driver abstraction for multithreaded sensor network operating systems
EWSN'08 Proceedings of the 5th European conference on Wireless sensor networks
An approach to event-driven algorithm for intelligent agents in multi-agent systems
KES-AMSTA'08 Proceedings of the 2nd KES International conference on Agent and multi-agent systems: technologies and applications
Slotted programming for sensor networks
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
A compact hard real-time operating system for wireless sensor nodes
INSS'09 Proceedings of the 6th international conference on Networked sensing systems
Enix: a lightweight dynamic operating system for tightly constrained wireless sensor platforms
Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems
Deterministic, predictable and light-weight multithreading using PRET-C
Proceedings of the Conference on Design, Automation and Test in Europe
Interconnecting Smart Objects with IP: The Next Internet
Interconnecting Smart Objects with IP: The Next Internet
Nucleos: a runtime system for ultra-compact wireless sensor nodes
EMSOFT '10 Proceedings of the tenth ACM international conference on Embedded software
WH '10 Wireless Health 2010
Programming wireless sensor networks: Fundamental concepts and state of the art
ACM Computing Surveys (CSUR)
An embedded language for programming protocol stacks in embedded systems
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Synchronous programming of device drivers for global resource control in embedded operating systems
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Threads2Events: an automatic code generation approach
Proceedings of the 6th Workshop on Hot Topics in Embedded Networked Sensors
uFlow: dynamic software updating in wireless sensor networks
UIC'11 Proceedings of the 8th international conference on Ubiquitous intelligence and computing
AC: composable asynchronous IO for native languages
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
ejIP: a TCP/IP stack for embedded Java
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Programming sensor networks using REMORA component model
DCOSS'10 Proceedings of the 6th IEEE international conference on Distributed Computing in Sensor Systems
Stateful mobile modules for sensor networks
DCOSS'10 Proceedings of the 6th IEEE international conference on Distributed Computing in Sensor Systems
Programming sensor networks with state-centric services
DCOSS'10 Proceedings of the 6th IEEE international conference on Distributed Computing in Sensor Systems
Composition and deployment of e-Health services over Wireless Sensor Networks
Mathematical and Computer Modelling: An International Journal
Pause 'n' play: formalizing asynchronous C#
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Modified protothreads for embedded systems
Journal of Computing Sciences in Colleges
Safety-critical Java for low-end embedded platforms
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
Self-Adapting Event Configuration in Ubiquitous Wireless Sensor Networks
International Journal of Adaptive, Resilient and Autonomic Systems
Synchronous programming of device drivers for global resource control in embedded operating systems
ACM Transactions on Embedded Computing Systems (TECS) - Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
A comprehensive compiler-assisted thread abstraction for resource-constrained systems
Proceedings of the 12th international conference on Information processing in sensor networks
Distributed stable states for process networks: algorithm, analysis, and experiments on intel SCC
Proceedings of the 50th Annual Design Automation Conference
Diagnostic tracing for wireless sensor networks
ACM Transactions on Sensor Networks (TOSN)
Safe system-level concurrency on resource-constrained nodes
Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems
QEMU/CPC: static analysis and CPS conversion for safe, portable, and efficient coroutines
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Proceedings of the 8th International Conference on Ubiquitous Information Management and Communication
ADOK: a minimal object oriented real-time operating system in C++
ACM SIGBED Review - Special Issue on the 3rd Embedded Operating System Workshop (EWiLi 2013)
Hi-index | 0.00 |
Event-driven programming is a popular model for writing programs for tiny embedded systems and sensor network nodes. While event-driven programming can keep the memory overhead down, it enforces a state machine programming style which makes many programs difficult to write, maintain, and debug. We present a novel programming abstraction called protothreads that makes it possible to write event-driven programs in a thread-like style, with a memory overhead of only two bytes per protothread. We show that protothreads significantly reduce the complexity of a number of widely used programs previously written with event-driven state machines. For the examined programs the majority of the state machines could be entirely removed. In the other cases the number of states and transitions was drastically decreased. With protothreads the number of lines of code was reduced by one third. The execution time overhead of protothreads is on the order of a few processor cycles.