Defining, analysing and implementing communication protocols using attribute grammars

A new approach to describing communication protocols is introduced. In the style of a formal language, the protocol is considered as the set of all legal sequences of symbols that can be exchanged by the communicating processes. Although context free grammars cannot adequately describe such sequences, it is shown that attribute grammars may be used. Examples are given which show that common protocol features such as interleaving, windowing and flow control can be described by attribute grammars.It is shown how deadlock-proneness of a protocol can be formalised as a property of its attribute grammar specification, and the undecidability of deadlock-proneness for arbitrary grammars is proved. An algorithm is given for determining whether a protocol is deadlock-prone in the decidable case.A method of automatically implementing protocols from their specifications is described. The implementation takes the form of a pair of communicating attributed pushdown automata. These are based on LR(0) parsers, with attribute evaluation being performed in parallel with the parse; attribute values are used to help direct the parse. Consideration is also given to the handling of errors.

[1]  Nigel P. Chapman Regular attribute grammars and finite state machines , 1989, SIGP.

[2]  Robert Giegerich,et al.  Attribute coupled grammars , 1984, SIGPLAN '84.

[3]  David P. Anderson,et al.  Protocol Specification by Real-Time Attribute Grammars , 1984, PSTV.

[4]  Neil D. Jones,et al.  Attribute-Influenced LR Parsing , 1980 .

[5]  Nigel P. Chapman,et al.  LR Parsing: Theory and Practice , 1988 .

[6]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[7]  Gordon V. Cormack,et al.  Modular Attribute Grammars , 1990, Comput. J..

[8]  Richard Jüllig,et al.  Regular right-part attribute grammars , 1984, SIGPLAN '84.

[9]  F Gire Infinite derivations , 1986 .

[10]  Joseph Y. Halpern,et al.  Executing Temporal Logic Programs. , 1988 .

[11]  Otto Haas,et al.  Formal protocol specification based on attribute grammars , 1985, PSTV.

[12]  Daniel J. Rosenkrantz,et al.  Attributed Translations , 1974, J. Comput. Syst. Sci..

[13]  Stanislaw Budkowski,et al.  An Introduction to Estelle: A Specification Language for Distributed Systems , 1987, Comput. Networks.

[14]  David Turner An overview of Miranda , 1986, SIGP.

[15]  Kai Koskimies,et al.  Compiler construction using attribute grammars , 1982, SIGPLAN '82.

[16]  P. M. Melliar-Smith,et al.  From State Machines to Temporal Logic: Specification Methods for Protocol Standards , 1982, The Analysis of Concurrent Systems.

[17]  Ole Lehrmann Madsen,et al.  Extended Attribute Grammars , 1981, Comput. J..

[18]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[19]  Kai Koskimies,et al.  The design of a language processor generator , 1988, Softw. Pract. Exp..

[20]  Keith A. Bartlett,et al.  A note on reliable full-duplex transmission over half-duplex links , 1969, Commun. ACM.

[21]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[22]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[23]  守屋 悦朗,et al.  J.E.Hopcroft, J.D. Ullman 著, "Introduction to Automata Theory, Languages, and Computation", Addison-Wesley, A5変形版, X+418, \6,670, 1979 , 1980 .

[24]  Pierre Wolper,et al.  Synthesis of Communicating Processes from Temporal Logic Specifications , 1981, Logic of Programs.

[25]  Ben C. Moszkowski,et al.  Executing temporal logic programs , 1986, Seminar on Concurrency.

[26]  Paul G. Sorenson,et al.  The Theory And Practice of Compiler Writing , 1985 .

[27]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.