• 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