DocumentCode
1528078
Title
Generating efficient protocol code from an abstract specification
Author
Castelluccia, Claude ; Dabbous, Walid ; O´malley, Sean
Author_Institution
INRIA, Montbonnot St. Martin, France
Volume
5
Issue
4
fYear
1997
fDate
8/1/1997 12:00:00 AM
Firstpage
514
Lastpage
524
Abstract
A protocol compiler takes as input an abstract specification of a protocol and generates an implementation of that protocol. Protocol compilers usually produce inefficient code both in terms of code speed and code size. We show that the combination of two techniques makes it possible to build protocol compilers that generate efficient code. These techniques are: (i) the use of a compiler that generates from the specification a unique tree-shaped automation (rather than multiple independent automata) and (ii) the use of optimization techniques applied at the automation level, i.e., on the branches of the trees. We have developed a protocol compiler that uses both these techniques. The compiler takes as the input a protocol specification written in the synchronous language Esterel. The specification is compiled into a unique automation by the Esterel front end compiler. The automation is then optimized and converted into C code by our protocol optimizer called HIPPCO. HIPPCO improves the code performance and reduces the code size by simultaneously optimizing the performance of the common path and optimizing the size of the uncommon path. We evaluate the gain expected with our approach on a real-life example, namely a working subset of the TCP protocol generated from an Esterel specification. We compare the protocol code generated with our approach to that derived from the standard BSD TCP implementation. The results are very encouraging. HIPPCO-generated code executes up to 25% fewer instructions than the BSD code for input packet processing while only increasing the code size by 25%
Keywords
abstract data types; automatic programming; formal specification; optimisation; program compilers; transport protocols; C code; Esterel front end compiler; Esterel specification; Esterel synchronous language; HIPPCO; TCP protocol; abstract specification; code performance; code size; code speed; efficient protocol code generation; input packet processing; optimization techniques; protocol compiler; protocol optimizer; protocol specification; tree-shaped automation; Automata; Automation; Code standards; Formal languages; Helium; Home appliances; Optimizing compilers; Production; Standards publication; Transport protocols;
fLanguage
English
Journal_Title
Networking, IEEE/ACM Transactions on
Publisher
ieee
ISSN
1063-6692
Type
jour
DOI
10.1109/90.649465
Filename
649465
Link To Document