David Greaves, Daniel Gordon



Pushlogic is a scripting language for a dynamic population of devices (sensors/processors/actuators) and dynamic number of concurrent applications in a reliable or safety-critical system. System stability is assured by idempotency constraints and intrinsic error recovery capabilities arise from the reversible nature of Pushlogic. It is a constrained language amenable to automated reasoning. It defines ‘re-hydration’ for dynamic binding of rules to new device instances and a load-time model checker that runs before a new bundle of rules may join a domain of participation. In a typical application, complex embedded devices are partitioned into passive components known as ‘pebbles’. API reflection is then used to expose the interfaces offered by the pebbles. All proactive and interactive behaviour between pebbles or over the network must then be implemented with Pushlogic and ‘code reflection’, as we call it, exposes this behaviour for automated reasoning.


  1. Chessell, M., Griffin, C., Vines, D., Butler, M., Ferreira, C., and Henderson, P. (2002). Extending the concept of transaction compensation. IBM Syst. J., 41(4):743- 758.
  2. David Dill, S. B. (2004). CVC lite. Technical report, Stanford University.
  3. Glässer, U. (1995). Systems level specification and modeling of reactive systems: Concepts, methods, and tools. In EUROCAST, pages 375-385.
  4. Kaiser, J. and Mock, M. (1999). Implementing the real-time publisher/subscriber model on the controller area network (can). In ISORC 7899: Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, page 172, Washington, DC, USA. IEEE Computer Society.
  5. Lupu E, S. M. (1997). Conflict analysis for management policies. In 5th Int Symp Integrated Network Management IM'97. Chapman Hall.
  6. McMillan, K. (2000). The smv language manual. Technical report, Carnegie-Mellon University.
  7. Microsoft (2000). Universal plug and play device architecture, version 1.0. Technical report, Microsoft.
  8. Monika Solanki, e. a. (2003). Introducing compositionality in webservice descriptions. In Proceedings of 3rd ANWIRE workshop on adaptable services, DAISFMOODS.
  9. Pearson, J. (2005). Embedding systems at a higher level. Electronic System Design.
  10. Presburger, M. (1929). Ober die vollstndigkeit eines gewissen systems der arithmetik ganzer zahlen, in welchem die addition als einzige operation hervortritt. Comptes Rendus du I congrs de Mathmaticiens des Pays Slaves, pages 92-101.
  11. ReactiveSystems (2003). Model-based testing and validation of control software with reactis. Technical Report 2003-1, Reactive Systems.
  12. Schlingloff, B.-H., Martens, A., and Schmidt, K. (2005). Modeling and model checking web services. Electronic Notes in Theoretical Computer Science: Issue on Logic and Communication in Multi-Agent Systems, 126:3-26.
  13. Umar Saif, S. W. e. a. (2003). A case for goal-oriented programming semantics. In UbiComp 03, System Support for Ubiquitous Computing Workshop at the Fifth Annual Conference on Ubiquitous Computing.

Paper Citation

in Harvard Style

Greaves D. and Gordon D. (2006). USING SIMPLE PUSHLOGIC . In Proceedings of WEBIST 2006 - Second International Conference on Web Information Systems and Technologies - Volume 1: WEBIST, ISBN 978-972-8865-46-7, pages 101-108. DOI: 10.5220/0001250401010108

in Bibtex Style

author={David Greaves and Daniel Gordon},
booktitle={Proceedings of WEBIST 2006 - Second International Conference on Web Information Systems and Technologies - Volume 1: WEBIST,},

in EndNote Style

JO - Proceedings of WEBIST 2006 - Second International Conference on Web Information Systems and Technologies - Volume 1: WEBIST,
SN - 978-972-8865-46-7
AU - Greaves D.
AU - Gordon D.
PY - 2006
SP - 101
EP - 108
DO - 10.5220/0001250401010108