Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: www.microsoft.com sure needs a lot of silicon

Re: www.microsoft.com sure needs a lot of silicon

From: paul chemmanoor <icarus_at_access.digex.net>
Date: 1997/04/25
Message-ID: <5jrnmh$jsc$1@news2.digex.net>#1/1

 Ravi K. Swamy wrote in article ...
>In article <33608441.5902_at_lehman.com>, Paul David Fox wrote:
>
>>Look at the MS APIs: multi-media, 3d/2d/sound, OLE, etc, etc.
>>Unix is still figuring out what the size of an 'int' is and
>
>Someone needs to read p. 36 of K&R (2nd Edition)
>
>--
>Ravi K. Swamy, Solicitor in Chief, CtWC rkswamy at eos.ncsu.edu
>http://www4.ncsu.edu/eos/users/r/rkswamy/www/ root@genom.com
>

hmm and someone else needs to look around a little. Theory and practice are not exactly the same.

perhaps you will find the following interesting ?

http://www.unix.digital.com/unix/64bit/api.html

"
[....]
When UNIX was first created in 1969, it was developed to run on a 16-bit computer architecture. The integer arithmetic operators and pointer operators used 16-bit quantities. The C language not only supported 16-bit integer and pointer data types but it also supported a 32-bit integer data type that could be emulated on hardware that does not support 32-bit arithmetic operations.
When the 32-bit minicomputer was introduced in the late seventies, UNIX was ported to this new class of machine. The predominate hardware architectures of the Eighties provided 32-bit integer arithmetic operators and 32-bit pointers. The C language for this class of machines developed a data model with a 16-bit short-integer type, a 32-bit integer type and a 32-bit pointer. During the Eighties, this was the predominate data model available with UNIX systems that execute on a 32-bit computer architecture. [...]

To describe these two systems in the jargon of today, UNIX on 32-bit minicomputers is an ILP-32 data model because the Integer, Long and Pointer data types are all 32-bits in size. DOS on the Intel architecture started out as IP-16 data model and transitioned to an LP-32 data model in the later years.
The standardization of UNIX began with a /usr/group committee in 1983. By 1988, the IEEE POSIX committee and the X/Open "consortium" had developed detailed specifications that were based upon the predominate implementations  of the time. These committees were striving to develop architecture neutral definitions that could be implemented on any hardware architecture. Since the standards were based on existing practice and the ILP model did not change during this gestation period, a dependency upon all conforming implementations using the ILP model was inadvertently incorporated into these standards. There were implementations available both as ILP-32 and as ILP-64 by the end of the decade.

Standardization of the ANSI-C language left the definition of the short integer, the integer, the long integer and the pointer vague to avoid artificially constraining hardware architectures that might benefit from defining these data types each independent from the other. It is possible, for instance, to define a short as 16-bits, an integer as 32-bits, a long as 64-bits and a pointer as 128-bits.
[...]
"
All that aside, I seem to remember that all that K&R ever said was that a long is atleast as large as
a short and possibly larger ? and that a long is atleast as large as a integer possibly larger etc ?
What is the exact quote from K&R C ?
Could someone please give us the quote ?

Received on Fri Apr 25 1997 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US