TY - JOUR
T1 - ESP
T2 - A language for programmable devices
AU - Kumar, Sanjeev
AU - Mandelbaum, Yitzhak
AU - Yu, Xiang
AU - Li, Kai
N1 - Copyright:
Copyright 2020 Elsevier B.V., All rights reserved.
PY - 2001/5
Y1 - 2001/5
N2 - 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 implemented 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 implimentation. 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.
AB - 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 implemented 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 implimentation. 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.
UR - http://www.scopus.com/inward/record.url?scp=18844416613&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=18844416613&partnerID=8YFLogxK
U2 - 10.1145/381694.378862
DO - 10.1145/381694.378862
M3 - Article
AN - SCOPUS:18844416613
SN - 0362-1340
VL - 36
SP - 309
EP - 319
JO - SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
JF - SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
IS - 5
ER -