The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Teapot: language support for writing memory coherence protocols
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generating efficient protocol code from an abstract specification
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Effects of communication latency, overhead, and bandwidth in a cluster architecture
Proceedings of the 24th annual international symposium on Computer architecture
ISCA '99 Proceedings of the 26th annual international symposium on Computer architecture
Concurrent programming in ML
Squeak: a language for communicating with mice
SIGGRAPH '85 Proceedings of the 12th annual conference on Computer graphics and interactive techniques
Compiling Esterel into sequential code
Proceedings of the 37th Annual Design Automation Conference
Communicating sequential processes
Communications of the ACM
Using meta-level compilation to check FLASH protocol code
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
The effects of communication parameters on end performance of shared virtual memory clusters
SC '97 Proceedings of the 1997 ACM/IEEE conference on Supercomputing
The Java Programming Language
Building and Using A Scalable Display Wall System
IEEE Computer Graphics and Applications
Esp: a language for programmable devices
Esp: a language for programmable devices
Dynamic memory management for programmable devices
Proceedings of the 3rd international symposium on Memory management
Using model checking to debug device firmware
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Fast Paths in Concurrent Programs
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
Using model checking to debug device firmware
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Continuations and transducer composition
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
PPL: A whole-image processing language
Computer Languages, Systems and Structures
Formal methods meet domain specific languages
IFM'05 Proceedings of the 5th international conference on Integrated Formal Methods
Hi-index | 0.00 |
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.