Xref: utzoo comp.lang.c++:2206 comp.lang.c:14573 comp.lang.forth:727 comp.lang.fortran:1598 comp.lang.misc:2304 Path: utzoo!utgpu!watmath!clyde!att!rutgers!uwvax!umn-d-ub!umn-cs!stachour From: stachour@umn-cs.CS.UMN.EDU (Paul Stachour) Newsgroups: comp.lang.c++,comp.lang.c,comp.lang.forth,comp.lang.fortran,comp.lang.misc Subject: Re: Assembly or .... Keywords: PL/S, SystemsImplementationLanguages Message-ID: <10335@umn-cs.CS.UMN.EDU> Date: 6 Dec 88 04:02:29 GMT References: <1388@aucs.UUCP> <729@convex.UUCP> <1961@crete.cs.glasgow.ac.uk> <6529@june.cs.washington.edu> Reply-To: stachour@umn-cs.cs.umn.edu (Paul Stachour) Organization: CSci Dept., University of Minnesota, Mpls. Lines: 26 In article <6529@june.cs.washington.edu> kolding@uw-june.UUCP (Eric Koldinger) writes: > >Ah, but wouldn't that be nice. Optimizing compilers that could generate >code as good as we can generate by hand in all cases. Let me know when >someone writes one. > One of the important parameters is the "size of the program". When I was working at IBM in the early 1970's, we had an outstanding "bet" as to whether anyone could outdo the PL/S compiler on a "non-trivial" program (defined as one that took more than 1K bytes of 360-assembler to write). We had a number of challenges. We never lost. Yes, one could take the compiler-output and find one thing to optimize by hand, but that was forbidden by the ground-rules. And those who "needed" an instruction or two used "instruction-forms", such as "CVB(IntVar,PackedStringVar);", whose semantics the compiler understood (and just generated the CVB + setup if needed). However, the win was that the SIL compiler did not have to "dump" its history for inability to see what the user was doing in this assembly-code block. That enabled one to write "everything" in a mid-level-language designed for systems implementation work [such as the PL/S dialect of PL/I] (I refuse to call languages of the ilk of "C" high-level), and put in the one-or-two assemblers that one "really needed". To their credit, notice that the designers of Ada allowed the same style in their language definition; I hope the compiler-writers and vendors know how to take advantage of it.