Safe Explicitly Staged
Programming
The Fox Project at
Carnegie Mellon
Threads of Research
Unifying Themes
Talk Outline
Modularity vs. Efficiency
Configuration in the
Foxnet
What is Staged
Computation?
Staging in Algorithm
Design
Example: Just-in-Time
Compilation
Partial Evaluation
Run-Time Code Generation
Example: Run-Time Code
Generation
Example: Run-Time Code
Generation
Why is Staged Programming
Difficult?
Our Thesis
Explicit Staging
Transparency
Static Verification
Talk Outline
Types to Guide Language
Design
Intensional Expressions
Manipulating Expressions
Intensional Typing
Expression Types
Expression Types
Continued
Some Simple Programs
Some Other Examples
Example from Foxnet
A Logical Analysis
Requirements Revisited
Run-Time Code Generation
Reflective Programming
Partial Evaluation
Talk Outline
Programming
Modularity
Implementation
Matrix Multiplication in
Fabius
Reasoning about Staged
Programs
Talk Outline
Summary
Future Work
Conclusion