Path: utzoo!attcan!uunet!lll-winken!ncis.llnl.gov!helios.ee.lbl.gov!pasteur!agate!bionet!ig!arizona!gudeman From: gudeman@arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Re: What is B&D? (Re: Bondage and Discipline Languages) Message-ID: <8810@megaron.arizona.edu> Date: 20 Jan 89 20:48:12 GMT Organization: U of Arizona CS Dept, Tucson Lines: 58 In article <8282@aw.sei.cmu.edu> firth@sei.cmu.edu (Robert Firth) writes: ]In article <8784@megaron.arizona.edu> gudeman@arizona.edu (David Gudeman) writes: ] ]>...the designers of Pascal, Modula-2, and Ada thought that sort of ]>thing was dangerous, and wanted to make it inconvenient to do. The ]>inconvenience was supposed to discourage such practices, and the extra ]>syntax was supposed to make sure it didn't happen by accident. ] ]The designer of Pascal and Modula-2 can speak for himself. ] ]As the person who designed the unchecked programming features of ]Ada, however, please let me state that the above speculation does ]not accurately represent my thinking or my intention. Wow, I didn't know we had a celebrity in the discussion! :-) You don't suppose Wirth is reading too do you? In defense of my remarks, I want to point out that I never intended them as a rigorous explanation of the intentions of the designers. My remarks were obviously too general and simplistic for that (though in re-reading, I see that it is not obvious that I knew that). ]1. There must be a means to convert a value of one type into a value ] of another type without change of representation... As you indicate later, this is only necessary if you are doing low-level programming. It is not obvious that all languages should support this sort of thing... ] ...However, it does give the designer some problems... ] . the code might not be portable. non-portable code should be easy ] to find ] . the code will need more careful validation, since one cannot rely ] on the type checking of the compiler. such code should alert the ] program tester or maintainer to its presence ] . many programming methodologies prescribe some form of automatic ] (or at least cheap) mechanism for detecting and controlling the ] use of non portable or otherwise special code. I don't understand what you mean here. ] The best solution to this problem is therefore to require any package ] that does these things to import something explicitly:... This is the first statement where I disagree, and I believe this may be a crucial point seperating totalitarian from anarchical language designers. I don't believe the solution is to _require_ anything. How do you know when you design the language whether these points will matter in any given situation? Why does this have to be built into the language? Why not trust the programmer to modularize and document the code correctly? ]...There was no intention to make it costly to use unchecked conversion; ]indeed, the cost is no more than that of doing I/O: ... I said ``inconvenient'', not ``costly''.