• DocumentCode
    3335624
  • Title

    Deriving State Machines from TinyOS Programs Using Symbolic Execution

  • Author

    Kothari, Nupur ; Millstein, Todd ; Govindan, Ramesh

  • Author_Institution
    Univ. of Southern California, Los Angeles
  • fYear
    2008
  • fDate
    22-24 April 2008
  • Firstpage
    271
  • Lastpage
    282
  • Abstract
    The most common programming languages and platforms for sensor networks foster a low-level programming style. This design provides fine-grained control over the underlying sensor devices, which is critical given their severe resource constraints. However, this design also makes programs difficult to understand, maintain, and debug. In this paper, we describe an approach to automatically recover the high-level system logic from such low-level programs, along with an instantiation of the approach for nesC programs running on top of the TinyOS operating system. We adapt the technique of symbolic execution from the program analysis community to handle the event-driven nature of TinyOS, providing a generic component for approximating the behavior of a sensor network application or system component. We then employ a form of predicate abstraction on the resulting information to automatically produce a finite state machine representation of the component. We have used our tool, called FSMGen, to automatically produce compact and fairly accurate state machines for several TinyOS applications and protocols. We illustrate how this high-level program representation can be used to aid programmer understanding, error detection, and program validation.
  • Keywords
    finite state machines; operating systems (computers); program diagnostics; sensors; FSMGen; TinyOS operating system; TinyOS programs; fine-grained control; finite state machine representation; high-level program representation; high-level system logic; low-level programming; low-level programs; nesC programs; program analysis; programming languages; protocols; sensor devices; sensor networks; state machines; symbolic execution; Automata; Automatic control; Automatic logic units; Computer languages; Logic devices; Logic programming; Operating systems; Programming profession; Protocols; Sensor systems and applications;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Information Processing in Sensor Networks, 2008. IPSN '08. International Conference on
  • Conference_Location
    St. Louis, MO
  • Print_ISBN
    978-0-7695-3157-1
  • Type

    conf

  • DOI
    10.1109/IPSN.2008.62
  • Filename
    4505480