icsu8209@attila.cs.montana.edu (Glassy) (10/16/90)
The recent discussion on living with or without pointers has been very informative. My thanks go to all contributors. Even so, I'm a bit puzzled. I thought the problems of pointers and aliasing had been addressed (and beat into submission) years ago, by the designers of Euclid. In Euclid, aliasing is forbidden. Pointers do exist, in the form of 'collections'. All aliasing must be detected at compile-time, or, for the situations where this cannot be guaranteed, the compiler must generate 'legality assertions' which an automated verifier will test... (I dimly remember there being a case where 'unspeakable assertions' --- unprovable assertions --- would be generated; it seemed to me, though, that inclusion of Algol-68's 'conformity clause' (suitably modified to work with variant records, instead of Algol's unions) might have tamed even these.) Perhaps I've grossly misinterpreted the intent of the designers of Euclid, but it seems that rather than try to incorporate -all- language features of -any- (much,some,little) utility, the designers chose to to keep -only- those features that -didn't- blatantly hinder the goal of program correctness and verifiability. Pointers, in a tamed form, were kept; aliasing was not. Does this mean Euclid was (is) incapable of doing some tasks gracefully? Probably it does... still, as an experiment in trying to make software more correct (and hopefully, cheaper to maintain), Euclid looked to me like a splendid experiment. Question: what happened to Euclid? I heard there was a later development (Concurrent Euclid) (Euclid + processes), and then a language called Turing... Could one or more of the gentlefolk at the University of Toronto comment? thanks, Lou Glassy (icsu8209@caesar.cs.montana.edu) ---------------------------------------------------------------------- p.s. my opinions/observations may safely be taken with a grain of salt, since i'm a c.s. undergrad (and not terribly wise on many things)... ----------------------------------------------------------------------