December 7 '95 Seminar Minutes
Attendance
About 20 people attended the seminar.
9:30am Olivier Danvy: Type-Directed Partial Evaluation
We present a strikingly simple partial evaluator, that is type-directed
and reifies a compiled program into the text of a residual, specialized
program. Our partial evaluator is the part of an offline partial
evaluator that residualizes static values in dynamic contexts at higher
types. Its restriction to the simply typed lambda-calculus coincides
with Berger and Schwichtenberg's ``inverse of the evaluation
functional'' (LICS'91), which is an instance of normalization in a
logical setting.
I will describe a module system for Scheme that is based on procedures,
rather than syntax, and uses an explicit linking operation to resolve
module dependencies. Modules consist of encapsulated program source,
along with any required or provided interfaces. The code in a module
is specified as data and is syntactically disjoint from the code that
makes the module. Program linking, compilation, and execution are
expressed as operations on sets of modules. The system supports both
static linking and rapid turnaround during program development.
12:30pm Lunch
2:00pm New Business
2:15pm Matthias Blume:
Refining Hygienic Macros for Modules and Separate Compilation
Genuine differences in the treatment of identifiers in
block-structured languages and those that provide qualified names for
accessing components of modules or aggregate data structures
invalidate some of the assumptions hygienic macro systems are based
on. We will investigate how these assumptions have to be changed, and
the consequences for the construction of hygienic macro expanders.
Macro expansion algorithms rely on their ability to rename identifiers
throughout the program. This creates difficulties when some
identifiers are used to connect individually compiled program
units. Therefore, it is necessary to make separate compilation aware
of macro expansion and vice versa. We will show how this can be done.
3:45pm Andrew Appel:
Short work-in-progress talk on cross-module inline expansion.
Suresh Jagannathan /
NEC Research Institute /
suresh@research.nj.nec.com