Antropova, Olga and Leavens, Gary T. (1998) ACL---Eliminating Parameter Aliasing with Dynamic Dispatch. Technical Report TR98-08, Department of Computer Science, Iowa State University.
ACL --- Eliminating Parameter Aliasing with Dynamic Dispatch
Olga Antropova and Gary T. Leavens
We have implemented a new method for eliminating reference
parameter aliases. This method allows procedure calls with overlapping
call-by-reference parameters, but at the same time guarantees that procedure
bodies are alias-free. The method involves writing multiple bodies for a
procedure: one per aliasing combination. Calls are automatically dispatched
to the appropriate procedure body based on the particular alias combination
among the actual parameters and imported global variables. This makes
writing verifiable client code simpler, since such code does not need to
determine the aliasing combination before the procedure is called. The
efficiency of dispatch to these bodies is no worse than hand-coded
determination of the aliasing combination would be in other languages.
In our experience, the number of necessary procedure bodies is usually
small, which makes the approach practical. Forcing programmers to write one
body for each aliasing combination also makes them consider each case of
aliasing among the parameters and globals, making it more likely that the
procedure is correctly implemented.
Keywords: reference parameter aliasing, global variable
aliasing, multi-body procedures, dynamic dispatch, static dispatch,
program verification, ACL language, alias-free programs, compiler
optimizations, call-by-value and call-by-result patterns.
1997 CR Categories:
D.3.1 [Programming Languages] Formal Definitions and Theory --- semantics;
D.3.3 [Programming Languages] Language Constructs and Features
--- control structures, procedures, functions, and subroutines;
D.3.m [Programming Languages] Miscellaneous
--- dynamic dispatch, multiple dispatch;
F.3.1 [Logics and Meanings of Programs]
Specifying and Verifying and Reasoning about Programs
--- logics of programs.
Contact site administrator at: firstname.lastname@example.org