[PRL] den sem, some additional comments

Matthias Felleisen matthias at ccs.neu.edu
Sat Mar 3 18:46:28 EST 2007


Will, so I agree with your write-up but after some reflection I do  
have comments:

1. You say that due to Church's thesis, it is no longer necessary to  
waste pages on proving that the meta-language is executable. (If my  
recollections are wrong, I know you want hesitate calling me things.)  
I think your argument is unacceptable. It basically argues that every  
"program" written in a "programming language" (TM, LC, Scheme) is a  
denotational semantics. To me, this is not the point of denotational  
semantics, as a form of specification from logic.

I used LAMBDA as in Scott's papers, which is NOT the lambda calculus.  
Instead it is a collection of mathematical functions that can easily  
be mapped to Pomega elements and that are executable. The  
combinations of these things are executable, too. If you use  
mathematical functions on, say, Scott domains outside of that  
collection, you are not assured executability. So I do think that you  
need to nail down mathematical structures and functions on top of  
them to write specs and you need a filter to ensure executability  
(e.g., Scott domains + LAMBDA, CCC plus typed lambda w/ fix, OSF  
domains + "Kleene", etc).

2. You also express the opinion that subjective factors plus non- 
determinism have contributed to the switch from denotational  
semantics to operational semantics. (Again, I believe that this is an  
accurate attribution.) I totally agree with the non-determinism part  
(having studied your thesis in a two-student course with you and  
having heard de Bakker and de Roever speak on metrics and Banach  
spaces often enough in the late 80s and early 90s). What I don't  
completely agree with is the subjective factors part, but of course  
there is no way to validate this. I do think it is interesting to  
know the story however:

[1970s]  the complexity of relating one den sem to another (Reynolds  
"logical predicates in the untyped world")
[1980s]  the failure of Damas thesis to prove type soundness for  
imperative ML using denotational semantics
[70/80s] the simultaneous discovery that den sem just doesn't hack it  
for non-deterministic systems
[70/80s] the "translation" of den sem into SOS by Plotkin
[88/89]  the complexity of the proof of type soundness in Mads  
Tofte's thesis (again for imperative ML)
[90/92]  the seeming ease of a proof using reduction semantics
[80-95]  similar ease of proofs for analyses when compared to  
Cousot's work (using den sem)

In sum, the kind of theorems that people wanted to prove didn't work  
out smoothly or easily in a denotational setting but were relatively  
easy to prove in an SOS or reduction semantics setting. Usability --  
just like with software applications -- and desired "target  
usefulness" play a tremendous role.

3. I share and don't share your evaluation of full abstraction as a  
minor impediment. On one hand, I believe that the way people  
connected observational equivalence to compilation and optimization  
is naive. I worked on the problem, I consider it to this day my  
deepest result, and I am more than willing to admit it. I left the  
area behind mostly because I think it's just wonderful math and has  
little bearing on real PL design issues. On the other hand, I  
conjecture that if we could find good mathematical-logical ways to  
implement automatic reasoning about obs equiv (the ultimate goal of  
FA researchers) then compilation and optimization would benefit  
tremendously.

To this day I recall Bill Pugh's visit to Rice in the early 90s.  
Using "bird watching" of Fortran programs, plain logic, and the  
decidability of Pressburger, he had accomplished as much on standard  
Fortran benchmarks as an "army" of Ken Kennedy PhD students, post- 
docs, and research scientists. It blew them away. Just in case: he  
had observed that the language that people optimize most is "for  
loops for constants and linear calculations with addition and  
multiplication by integer constants." For this non-Turing PL, you can  
reason about equalities using Pressburger arithmetic, which is  
decidable and computable (hyper-exponentially).

I am expecting similar results from work on reasoning mathematically  
about obs equiv in general (after my death).

-- Matthias








More information about the PRL mailing list