[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: need for macros (was Re: Icon)

Mike, this is a very natural point. 

Suppose your language has nothing but the number 5. 
 Then it is extremely easy to reason about it. All 
 programs have the result 5. 

Suppose your language has :=, ; , if, and for i=N to M
 (with M > N > 0). Then all your programs terminate. 
 Possible to verify most (all?) things. 

Add a while loop. Argh, you are in the Turing tarpit. 
 But, believe it or not, Hoare-Dijkstra got far in this world. 

Add procedures and parameter-passing mechanisms. Hoare and Dijkstra don't
 scale. See Open and Cartwright's paper. 

Now make procedures first-class. The world of predicate reasoning is out
 the window. That's where type theory is so much better. 

And the list goes on, as I indicate with my statement on macros. 

-- Matthias