Tool for extracting succinct logic models from extensive nesC (network embedded C) firmware
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Tool for extracting succinct logic models from large nesC (network embedded C for the Berkeley TinyOS operating system) firmware.

Takes as input a TinyOS application and information about the sensor platform, and:

  • Generates Input and Output explanations for the code, i.e., (i) that set of external events the application takes as inputs, and (ii) which system interfaces are used to output signals, respectively.
  • Generates compact What-if and How-to explanations, i.e., state machines showing an abstracted model of program logic: the model shows (i) what happens in the logic if certain Input values are imposed, and (ii) how to reach certain Output values without dictating the Inputs.

For parsing the platform C source you need (included here):

  • PLY-3.4 (Python implementation of lex/yacc)
  • pycparser-2.03 (a PLY-based parser for C which, in this version, supports C99 and no gcc extensions)

For generating execution paths for the model you need:


Intelligible TinyOS Sensor Systems: Explanations for Embedded Software. D. Bucur. Int. Interdisc. Conf. on Modeling and Using Context. Springer Lecture Notes in Computer Science (LNCS), Volume 6967, pages 54-66, 2011. pdf or SpringerLink