Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!husc6!think!ames!ucsd!ucsdhub!hp-sdd!hplabs!sri-unix!quintus!ok From: ok@quintus.UUCP (Richard A. O'Keefe) Newsgroups: comp.arch Subject: Re: negative addresses (really unsigned arithmetic) Message-ID: <976@cresswell.quintus.UUCP> Date: 14 May 88 10:46:54 GMT References: <2393@uvacs.CS.VIRGINIA.EDU> <9485@apple.Apple.Com> <11592@ut-sally.UUCP> Organization: Quintus Computer Systems, Mountain View, CA Lines: 32 In article <11592@ut-sally.UUCP>, nather@ut-sally.UUCP (Ed Nather) writes: > In article <965@cresswell.quintus.UUCP>, ok@quintus.UUCP (Richard A. O'Keefe) writes: > > > (2) I am getting sick of computers which cannot do integer arithmetic > > and won't admit their mistakes. Floating-point was bad enough, > > but when a computer will add 1 to a positive number and give me > > a negative number it's time we cleaned up our act. > > I agree, but I'm pretty sure floating point isn't much of an answer. I didn't suggest it was! No way! [Quick exercise: supposing 32-bit integers and 32-bit IEEE floats, find numbers X, Y, Z such that X.GE.Y .AND. Y.GE.Z .AND. X.LT.Z in a conforming Fortran-77 -- declarations may be needed.] > Now, if we designed computers so integer word sizes were large enough to > hold the largest number we now use in floating point (ca. 2^512 or so) My point is that "word size" is an implementation detail which is of interest to people writing device drivers, operating systems, compilers, &c, but that most of my programs couldn't care less. If I declare a 512-bit integer and the machine has 32-bit registers, it's the compiler's job to cope. All of the machines I am familiar with except the B6700 have support for multi-precision integer arithmetic, and the B6700 could deal with 78-bit + sign integers anyway. What's the good of ADDC.L and the rest if the compiler won't generate them? I appreciate that there are applications where the "C" model is appropriate. But why should COBOL be the only language I can do 18-digit integer arithmetic in? (LISP has arbitrary precision integers and rationals, but that requires dynamic storage management, which I also like, but one dream at a time.)