Xref: utzoo comp.arch:10503 comp.lang.misc:3039 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!mailrus!ncar!ico!ism780c!haddock!suitti From: suitti@haddock.ima.isc.com (Stephen Uitti) Newsgroups: comp.arch,comp.lang.misc Subject: Re: Double Width Integer Multiplication and Division Message-ID: <13946@haddock.ima.isc.com> Date: 5 Jul 89 22:15:11 GMT References: <57125@linus.UUCP> <1989Jun24.230056.27774@utzoo.uucp> <255@obs.unige.ch> <1387@l.cc.purdue.edu> Reply-To: suitti@haddock.ima.isc.com (Stephen Uitti) Organization: Interactive Systems, Boston Lines: 46 In article <1387@l.cc.purdue.edu> cik@l.cc.purdue.edu (Herman Rubin) writes: >What languages, other than Lisp and some similar ones, have the idea that >an operation or function can return a string of values? C. One can pass structures and unions back & forth by name or value. While it is true that some C compilers are broken when passing large things by value, it has been defined in the language since 1978. OK, so the syntax is a little awkward in that you have to define the structures, but at least it tends not to add large amounts of additional overhead. Also, in C, people commonly use the code sequences: caller: int i, j; char *p; i = foo(&j, &p); callie: int foo(j, p) int *j; char **p; { *j = secondvalue; strcpy(*p, "third value"); return value; } Which is OK, as long as the interface is properly documented. Now you want the language to use syntax that YOU defined? Compiler writers are doing that now too. I'd rather they spent their time on designing unambiguous and coherant languages for which code can be easily written, read and modified, that have real scope rules for libraries and other seperately compiled environments, and produce more optimal code for real machines, and provide for special needs of real people in the way of specialized preprocessors (lex, yacc) and prewritten library code. >What languages allow the user to introduce additional operator >symbols? A few allow additional types. Now these deficiencies >in languages go back to day 1. C++ and Ada. My wristwatch (Casio) has more compute resources than was available on day 1. I don't expect it to allow additional operators and types either. It does have a 64 bit (BCD) divide. Throw out your '205 and get a Casio. Stephen.