Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/378795.378862acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

ESP: a language for programmable devices

Published: 01 May 2001 Publication History

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-machine 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 SPlN 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.

References

[1]
K. Arnold, J. Gosling, and D. Holmes. The Java Programming Language, Third Edition. Addison-Wesley Publications, 2000.
[2]
A. Basu, T. von Eicken, and G. Morrisett. Promela++: A language for correct and efficient protocol construction. In Infocom, 1998.
[3]
G. Berry and G. Gonthier. The ESTEREL synchronous programming language: design, semantics, implementation. Science of Computer Programming, 19(2), 1992.
[4]
A. Bilas, C. Liao, and J. Singh. Using network interface support to avoid asynchronous protocol processing in shared virtual memory systems. In International Symposium on Computer Architecture, June 1999.
[5]
A. Bilas and J. P. Singh. The effects of communication parameters on end performance of shared virtual memory clusters. In SC97 conference, Nov 1997.
[6]
L. Cardelli and R. Pike. Squeak: a language for communicating with mice. Computer Graphics, 19(3):199-204, July 1985.
[7]
C. Castelluccia, W. Dabbous, and S. O 'Malley. Generating efficient protocol code from an abstract specification. In SIGCOMM, 1996.
[8]
S. Chandra, B. E. Richards, and J. R. Larus. Teapot: Language support for writing memory coherence protocols. In Programming Language Design and Implementation, 1996.
[9]
A. Chou, B. Chelf, D. Engler, and M. Heinrich. Using meta-level compilation to check flash protocol code. In Architectural Support for Programming Languages and Operating Systems, 2000.
[10]
C. Dubnicki, A. Bilas, Y. Chen, S. Damianakis, and K. Li. VMMC-2: efficient support for reliable, connection-oriented communication. In Proceedings of Hot Interconnects, Aug. 1997.
[11]
S. A. Edwards. Compiling esterel into sequential code. In Design Automation Conference, 2000.
[12]
P. Godefroid. Model checking for programming languages using VeriSoft. In Principles of Programming Languages, Paris, France, 1997.
[13]
C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666-677, Aug. 1978.
[14]
G. J. Holzmann. The SPIN model checker. IEEE Transaction on Software Engineering, 23(5):279-295, May 1997.
[15]
S. Kumar. ESP: A language for programmable devices. Ph. D. thesis, Dept. of Computer Science, Princeton University, In Preparation.
[16]
K. Li, H. Chen, Y. Chen, D. W. Clark, P. Cook, S. Damianakis, G. Essl, A. Finkelstein, T. Funkhouser, A. Klein, Z. Liu, E. Praun, R. Samanta, B. Shedd, J. P. Singh, G. Tzanetakis, and J. Zheng. Early experiences and challenges in building and using a scalable display wall system. IEEE Computer Graphics and Applications, 20(4):671-680, 2000.
[17]
R. P. Martin, A. M. Vahdat, D. E. Culler, and T. E. Anderson. Effects of communication latency, overhead, and bandwidth in a cluster architecture. In International Symposium on Computer Architecture, 1997.
[18]
T. A. Proebsting and S. A. Watterson. Filter fusion. In Principles of Programming Languages, 1996.
[19]
J. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999.
[20]
B. SGS-Thomson Microelectronics. OCCAM 2.1 Reference Manual. 1995.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
June 2001
331 pages
ISBN:1581134142
DOI:10.1145/378795
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2001

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PLDI01
Sponsor:

Acceptance Rates

PLDI '01 Paper Acceptance Rate 30 of 144 submissions, 21%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2008)We need more than oneACM SIGPLAN Notices10.1145/1480828.148084143:11(62-65)Online publication date: 30-Nov-2008
  • (2006)Continuations and transducer compositionProceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1133981.1134016(295-307)Online publication date: 11-Jun-2006
  • (2006)Continuations and transducer compositionACM SIGPLAN Notices10.1145/1133255.113401641:6(295-307)Online publication date: 11-Jun-2006
  • (2005)Formal methods meet domain specific languagesProceedings of the 5th international conference on Integrated Formal Methods10.1007/11589976_12(187-206)Online publication date: 29-Nov-2005
  • (2004)Fast Paths in Concurrent ProgramsProceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques10.5555/1025127.1026008(189-200)Online publication date: 29-Sep-2004
  • (2004)Fast paths in concurrent programsProceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004.10.1109/PACT.2004.1342553(189-200)Online publication date: 2004
  • (2004)On Designing a Target-Independent DSL for Safe OS Process-Scheduling ComponentsGenerative Programming and Component Engineering10.1007/978-3-540-30175-2_23(436-455)Online publication date: 2004
  • (2002)Using model checking to debug device firmwareProceedings of the 5th symposium on Operating systems design and implementation (Copyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading)10.5555/1060289.1060296(61-74)Online publication date: 9-Dec-2002
  • (2002)LunaACM SIGOPS Operating Systems Review10.1145/844128.84416436:SI(391-403)Online publication date: 31-Dec-2002
  • (2002)Secure routing for structured peer-to-peer overlay networksACM SIGOPS Operating Systems Review10.1145/844128.84415636:SI(299-314)Online publication date: 31-Dec-2002
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media