|Lots of things are happening with ACM TOPLAS firstname.lastname@example.org (1997-03-31)|
|Partial evaluation vs flow-graph analysis email@example.com (Christian Fabre) (1997-05-22)|
|Re: Partial evaluation vs flow-graph analysis firstname.lastname@example.org (1997-05-25)|
|Re: Partial evaluation vs flow-graph analysis email@example.com (Tommy Thorn) (1997-05-27)|
|Partial evaluation in imperative languages. firstname.lastname@example.org (Charles Fiterman) (1997-05-30)|
|Re: Partial evaluation in imperative languages. email@example.com (Stefan Monnier) (1997-05-31)|
|Re: Partial evaluation in imperative languages. firstname.lastname@example.org (Cliff Click) (1997-06-02)|
|Re: Partial evaluation in imperative languages. email@example.com (Charles Fiterman) (1997-06-04)|
|Re: Partial evaluation in imperative languages. firstname.lastname@example.org (1997-06-10)|
|From:||Charles Fiterman <email@example.com>|
|Date:||30 May 1997 23:15:40 -0400|
|References:||97-03-165 97-05-254 97-05-275 97-05-301|
I think for partial evaluation to be useful in an imperative language
there must be language constructs to support it. I am experimenting
with this notion and we have the following.
The following variables are frozen, they have reached their final state.
In a function declaration this means the function may be regarded as
referentially transparent no matter what it looks like. This allows a
square root function with an error message to be treated as transparent.
You would rather see the message at compile time anyway.
In a function declaration it means the function may not be regarded
as referentially transparent. For example a delay function.
Do this now regardless. mac date; is the compile date. On a function
it means this is run at compile time. On a variable makes this a compile
Defer as far as possible, do at run time. May be put on a function
but may be overridden at compile time. This is the default for variables.
I regard strong typing as partial evaluation of the type system in
such a way that no errors may occur at run time. But there are many
times we don't want errors at run time. I don't ever want to hear "Is
there a programmer aboard the aircraft? I'm getting the message 'zero
I believe partial evaluation can be used to detect the possibility of
inappropriate error messages such as 'zero divide error' in a
navigation program or word processor. Using it that way would require
massive labor but there are systems where this is a good idea.
Return to the
Search the comp.compilers archives again.