A formal model and specification language for procedure calling conventions

Procedure calling conventions are used to provide uniform procedure-call interfaces. Applications, such as compilers and debuggers, which generate, or process procedures at the machine-language abstraction level require knowledge of the calling convention. In this paper, we develop a formal model for procedure calling conventions called P-FSA's. Using this model, we are able to ensure several completeness and consistency properties of calling conventions. Currently, applications that manipulate procedures implement conventions in an ad-hoc manner. The resulting code is complicated with details, difficult to maintain, and often riddled with errors. To alleviate the situation, we introduce a calling convention specification language, called CCL. The combination of CCL and P-FSA's facilitates the accurate specification of conventions that can be shown to be both consistent and complete.

[1]  Ralph E. Griswold,et al.  The ICON Programming Language, 2nd Ed. , 1990 .

[2]  Ralph E. Griswold,et al.  The Icon programming language , 1983 .

[3]  V. Rich Personal communication , 1989, Nature.

[4]  David B. Whalley,et al.  Methods for saving and restoring register values across function calls , 1991, Softw. Pract. Exp..

[5]  George H. Mealy,et al.  A method for synthesizing sequential circuits , 1955 .

[6]  Jack W. Davidson,et al.  A Formal Model for Procedure Calling Conventions , 1994 .

[7]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[8]  A. J. Aikens,et al.  Bell System technical papers not published in this journal , 1954 .

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

[10]  Dennis M. Ritchie,et al.  The c language calling sequence , 1981 .

[11]  Manuel E. Benitez,et al.  A portable global optimizer and linker , 1988, PLDI '88.

[12]  R. Tibshirani,et al.  An introduction to the bootstrap , 1993 .

[13]  Douglas T. Ross,et al.  Automatic generation of efficient lexical processors using finite state techniques , 1968, CACM.

[14]  Manuel E. Benitez,et al.  The Advantages of Machine-Dependent Global Optimization , 1994, Programming Languages and System Architectures.

[15]  Jack W. Davidson,et al.  A Formal Specification for Procedure Calling Conventions , 1993 .

[16]  Thomas Müller Employing finite automata for resource scheduling , 1993, MICRO 1993.

[17]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[18]  Christopher W. Fraser,et al.  Detecting pipeline structural hazards quickly , 1994, POPL '94.

[19]  Stephen E. Edgell,et al.  Digital equipment corporation’s PDP-11 computers , 1989 .

[20]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[21]  Gerry Kane,et al.  MIPS RISC Architecture , 1987 .