ESP: A language for programmable devices

S. Kumar, Y. Mandelbaum, X. Yu, Kai Li

Research output: Contribution to conferencePaperpeer-review

13 Scopus citations


This paper presents the design and implementation of Event-driven State-machines Programming (ESP)-a language for programmable devices. In traditional languages, like C1 using event-driven state-machines forces a tradeoff that requires giving up ease of development and reliability to achieve high performance ESP is designed to provide all of these three properties simultaneously. ESP provides a comprehensive set of features to support development of compact and modular programs. The ESP compiler compiles the programs into two targets-a C file that can be used to generate efficient firmware for the device; and a specification that can be used by a verifier like SPIN to extensively test the firmware. As a case study, we reimplemented VMMC firmware that runs on Myrinet network interface cards using ESP. We found that ESP simplifies the task of programming with event-driven state machines. It required an order of magnitude fewer lines of code than the previous implementation. We also found that mo del-checking verifiers like SPIN can be used to effectively debug the firmware. Finally, our measurements indicate that the performance overhead of using ESP is relatively small.

Original languageEnglish (US)
Number of pages12
StatePublished - 2001
EventACM SIGPLAN'01 Conference on Programming Language Design and Implementation (PLDI) - Snowbird, UT, United States
Duration: Jun 20 2001Jun 22 2001


OtherACM SIGPLAN'01 Conference on Programming Language Design and Implementation (PLDI)
Country/TerritoryUnited States
CitySnowbird, UT

All Science Journal Classification (ASJC) codes

  • Software


Dive into the research topics of 'ESP: A language for programmable devices'. Together they form a unique fingerprint.

Cite this