Modern programming languages encourage programmers to use abstraction and encapsulation to hide one moduleOs data representation details from other modules. But this leads to slow execution without in-line expansion (substitution of procedure bodies for procedure calls). The problem is particularly acute in object-oriented and functional programming languages that support method and function abstraction. Most previous work on in-line expansion (in imperative languages) fails to inline higher-order and recursive functions, but in functional languages (and object- oriented languages, with dynamic methods) these can be crucial. Since modules can be compiled separately from each other, cross-module in-line expansion complicates program linkage. This work uses a lambda-calculus framework for cross-module in-line expansion, which cleanly separates the compilation- management issues from the inlining algorithms. The objective of this project is to implement this framework, and then design inlining algorithms within the framework that can be tested in the field.***

Project Start
Project End
Budget Start
1996-09-01
Budget End
1999-08-31
Support Year
Fiscal Year
1996
Total Cost
$180,331
Indirect Cost
Name
Princeton University
Department
Type
DUNS #
City
Princeton
State
NJ
Country
United States
Zip Code
08540