Byte order (retitled)

Griff Smith ggs at ulysses.UUCP
Tue Apr 8 01:59:05 AEST 1986


...
> 	Well, no, little-endian came about because the engineers at DEC
> who designed the PDP-11 made an arbitrary decision that was not well
> thought out.  I will not essay to defend the sanity of DEC engineers,
> and cannot recommend that any one else do so (:-)).  It was a bad
> decision.
.
...
> In short, little-endian was a mistake, is a mistake, and will continue
> to be a mistake.
> 
> 		Richard Harter, SMDS Inc.

As an old PDP-11 hacker, I can't agree with the condemnation of the
DEC engineering decision.  You are looking at it from the perspective
of a modern software engineer who wouldn't think of type punning and
other hacks.  To an assembly language programmer, however, the ability
to use the same address to test the low and high bytes of a device
status register meant that code would be shorter and faster.  It also
increased the number of cases where indirect addressing could be used
with register pointers.  You can't expect the engineers to have
anticipated that high-level languages would discredit these practices.

My own theory about big vs. little end usage is that the mistake was
made hundreds of years ago when merchants started to adopt the Arabic
(as adapted from earlier Hindu sources) number system.  Note that
Arabic is written right to left; note that numbers are written right
to left.  I think the Arabs knew what they were doing; they set the
notation so that the natural computational order followed the
conventional lexical order.  The European merchants missed the point
and copied the notation verbatum instead of compensating for the
opposite lexical convention.

In summary, big-endian was a mistake, but there is no use fighting it.
Any better-informed historical challenges will be cheerfully accepted;
the best data I could get was from an ex-patriot of Iran.
-- 

Griff Smith	AT&T (Bell Laboratories), Murray Hill
Phone:		(201) 582-7736
Internet:	ggs at ulysses.uucp
UUCP:		ulysses!ggs  ( {allegra|ihnp4}!ulysses!ggs )



More information about the Comp.lang.c mailing list