z-logo
Premium
Optimizing Procedure Calls in Block‐structured Languages
Author(s) -
GOODWIN JEREMY P.,
GEHRINGER EDWARD F.
Publication year - 1996
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/(sici)1097-024x(199612)26:12<1385::aid-spe68>3.0.co;2-8
Subject(s) - computer science , variable (mathematics) , compiler , block (permutation group theory) , compile time , scheme (mathematics) , overhead (engineering) , set (abstract data type) , register allocation , programming language , parallel computing , architecture , instruction set , mathematics , art , mathematical analysis , geometry , visual arts
Static chains and displays are two techniques used by compilers to implement variable references for block‐structured programming languages. Both methods impose significant run‐time overhead during procedure calls and variable references. This paper investigates several optimizations to improve upon common practice. The effectiveness of the various schemes is measured by collecting dynamic reference traces from executing Ada programs and assigning costs for procedure calls and variable references using two cost models. One model assumes a complex instruction‐set architecture and the other assumes a reduced instruction‐set architecture. Optimizations to the static chain scheme are found to significantly reduce its overall cost and approach the cost of the display scheme while using fewer registers than a display.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here