Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

parameterized partial evaluation

2 views
Skip to first unread message

Saverio Perugini

unread,
Oct 15, 2002, 2:25:13 PM10/15/02
to
Hello,

As I understand it, parameterized partial evaluation entails partially evaluating
a program with respect to `abstract' properties of a program
as opposed to specific values for variables.

I have the need to circumvent the `all or nothing' role
played by partial evaluation. By all or nothing I mean that if a
variable is static (with regard to partial evaluation) and has a value
supplied a-priori, then partial evaluation will simplify it
*everywhere* in the program. In other words, partial evaluation
makes no bias about that variable among contexts/different segments of the program.

For example, consider partially evaluating the following Scheme function
with respect to the property `a = 1 and d = 1 and
(b = 1 and c = 0 [under the a block]) and (b = 0 and c = 1 [under the d block]).'

(define (f a b c)

(if (equal? a 1)

(if (equal? b 1)
; do something here

(if (equal? c 1)
; do something else here
))

(if (equal? d 1)

(if (equal? b 1)
; do something now

(if (equal? c 1)
; do something else now)))))

where the output of the partial evaluation would be

; do something here
; do something else now

To me,
the property `a = 1 and d = 1 and (b = 1 and c = 0 [under the
a block]) and (b = 0 and c = 1 [under the d block])' seems abstract, akin
to parameterized partial evaluation.
This abstract property is a specification which
traditional partial evaluators do not accommodate.

Can parameterized partial evaluation realize this request or
am I thinking about parameterized partial evaluation wrongly?

Thank You and Best Regards,

S. Perugini

0 new messages