Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site topaz.ARPA Path: utzoo!watmath!clyde!cbosgd!cbdkc1!desoto!packard!topaz!LEVITT@MIT-OZ From: LEVITT@MIT-OZ Newsgroups: net.works Subject: WORKS Digest V5 #24 Message-ID: <2075@topaz.ARPA> Date: Thu, 23-May-85 03:39:59 EDT Article-I.D.: topaz.2075 Posted: Thu May 23 03:39:59 1985 Date-Received: Fri, 24-May-85 04:34:51 EDT Sender: daemon@topaz.ARPA Organization: Rutgers Univ., New Brunswick, N.J. Lines: 48 From: LEVITT%MIT-OZ@MIT-MC.ARPA I have been quietly enjoying Doug Pardee's defense of assembly language. I've hacked Lisp Machine lisp quite alot, and I've hacked assembler, and in some ways I've found assembler more satisfying. Doing real-time music applications, I've generated some gorgeous polyphony easily in real time in assembler -- whereas in Zetalisp I'd almost HAVE to pre-compute it, or strenuously cache it, or give it up. In general (or at least until recently) system sources were always available for lispms, so IN PRINCIPLE I could make code perform, even if it meant microcoding; but the programming style most ENCOURAGED by the lisp machine system always meant low performance. (My main experience is with MIT's old CADR/LM-2 design, but comments about the programming environment and style apply to today's systems, too.) Between mediocre compilers, huge operating system kernels, and demand paged systems, this is typical of HLL environments: you get some good tools but you lose control of the performance of the machine. So I think a relevant question is: how much can we improve assembly code design, maintenance, and debugging tools? Could we make them so wonderful that most of the HLLers' objections go away? (I once heard a rumor this was being done for the Mac.) Of course, many assembly systems already have better source level debuggers than the C and other compiled HLLs on the same machine. And, two advanced systems come to mind: (1) Jim Dunion's amazing debugger for the Atari (circa 81 -- I forget its name) was window-based, had an animated stack trace, break window, etc. It preceded the Lisp Machine window debugger, and ran faster. (2) MacNosy by a fellow named Jarmusche (sp?) should have been an AI degree, if he doesn't already have one. It "decompiles" 68000 code, doing a recursive tree walk through apparent code segments, and allowing the user to intervene. So you can study and (by entering macros as you discover structure) grok jump tables and other weird programming habits of your favorite compilers or assembly code authors. Roger Duffey did some interesting work on assembler expertise at MIT's AI lab a few years ago, but in general it seems to be a vastly underexplored field. I think indirectly, the commitment here to microcoded Lispms killed interest in it. (Except I hear Richard Greenblatt did a very smart microcompiler for his Lispms.) --David Levitt