archives

ACL---Eliminating Parameter Aliasing with Dynamic Dispatch


Home 

About 

Browse 

Search 

Register 

Subscriptions 

Deposit Papers 

Help
    

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.

Full text available as:Postscript
Adobe PDF

Abstract

ACL --- Eliminating Parameter Aliasing with Dynamic Dispatch
by
Olga Antropova and Gary T. Leavens
Abstract
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.

Subjects:All uncategorized technical reports
ID code:00000194
Deposited by:Staff Account on 24 July 1998



Contact site administrator at: ssg@cs.iastate.edu