![]() |
![]() |
|||||||||
|
Title
ESP: A language for programmable devices. Authors Sanjeev Kumar, Yitzhak Mandelbaum, Xiang Yu, Kai Li. Publication In the Proceedings of ACM Conference on Programming Language Design and Implementation (PLDI), Pages 309-320, Snowbird, Utah, June 2001.
Downloads Abstract
This paper presents the design and implementation of Event-driven
State-machines Programming (ESP)---a language for programmable
devices. In traditional languages, like C, 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 model-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.
|
||||||||||
![]() |
![]() |
|||||||||