Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!ncar!noao!arizona!gudeman From: gudeman@cs.arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Re: C's sins of commission Message-ID: <27476@megaron.cs.arizona.edu> Date: 14 Nov 90 15:06:20 GMT Organization: U of Arizona CS Dept, Tucson Lines: 53 In article <-M.6315@xds13.ferranti.com> Peter da Silva writes: ]David Gudeman: ]> ... Lists and trees are mental structures that ]> humans use to visualize things. ] ]While I'm generally in the bit-bangers camp, I must agree with Piercarlo here. ]The basic things that people work with are "chunks of data". Well, I'm _not_ in the bit-bangers camp and never have been. You have to drag me kicking and screaming to get me anywhere near an assembler. I _never_ look at the assembler output of my C code, and I prefer not to program in C if I don't have to. My favorite languages have no obvious relationship between the language constructs and the object code. I even like interpreted languages. Can we all stop assuming that just because someone says that pointers can be abstract objects, that this means the speaker doesn't know what an abstraction is? Maybe I have an intuition here that you all are not seeing because you refuse to posit the possibility even long enough to consider it. My ideal language would have APL-style arrays, SETL-style sets, Icon-style lists and strings (Lisp lists and strings are too low-level for my taste), Prolog-style terms, Emacs-style buffers, associative lookup tables, first-class everything, and lots of other things that would horrify a bit-banger. It would also have high-level pointers with pointer arithmetic. The pointers would be high-level in the sense that they could not be implemented as simple addresses, nor could pointer operations be implemented one-to-one as machine instructions. Bit-bangers would be as horrified by my pointers as by my arrays. Efficiency has _no_, I repeat _no_ influence on my opinion about pointers. Pant, pant. And furthermore... ] Lists, trees, ]tries, and so on are methods of implementing these databases in efficient ]ways. There's nothing fundamental about them. "tries"!? Eek. There is no relationship between tries and trees except that tries are often visualized as trees. Implying that these are at the same level of abstraction is like implying that a list is at the same level of abstraction as a linked list. I'm not the one having trouble seperating concept from implementation here. Did the early linguists know that they were working with low-level, machine-oriented representations when they started drawing sentence diagrams as trees? -- David Gudeman Department of Computer Science The University of Arizona gudeman@cs.arizona.edu Tucson, AZ 85721 noao!arizona!gudeman