[net.lang.c] Dying Architectures

cottrell@NBS-VMS.ARPA (COTTRELL, JAMES) (10/08/85)

/*
> >From: ray@othervax.UUCP (Raymond D. Dunn)
> >It is intersting to note in the discussions re short, longs etc. that
> >portability seems to be regarded as a major reason-d'etre for much
> >coding activity.
> >
> >All very well if portability can become ingrained in our way of thinking
> >just as block-structuring has now become (to some), but it should be noted
> >that in this big bad commercial world we (some of us) live in, very few
> >software projects can afford to schedule "extra" time for designing in, and
> >testing, the portability of code.  Yes, in the long run, it is maybe
> >worthwhile, but often it falls into the same category as generalising your
> >code as opposed to making it specific - a good thing to do, but often
> >commercially/practically unjustified.

While I am generally not a strict portability freak, I would have to
agree with the first clause of the preceding paragraph. That is,
Portability as context for prgramming, as opposed to content. When you
do it right the first time, you don't have to go back or budget extra
time. I doubt if it takes Guy Harris any longer to write portably, he
just *thinks* that way. 

> Astounding! I guess you have a right to your opinion, what company do
> you work for and exactly what processor is your code tied to so I know
> exactly when to sell short on your stock? DEC-20? IBM7094? Z80? TIMEX/1000?
> DEC-10? 8008? PDP-8? DG/NOVA? SDS(XDS)? need I go on....

Good point, but you are mentioning dinosaurs. With the exception of the
Z80 & the DEC machines, (well maybe NOVA, but they are rare) all these
machines are dead. Maybe that was your point. See below.
 
> Maybe you should have a little chat with some of the vendors of code for
> those machines about portability and it's relationship to commercial
> survival, as the old expression goes, you more likely can't afford *not*
> to spend the extra time. Sit down and extrapolate the life span of a processor
> coming to market today (hint: it's shrinking.)*
> *exception: ibm370 architecture, give or take XA I assume it will be around
> forever, tho that still might exclude new markets for your software.
 
It is often said that the whole world is not a VAX. Too bad. That's like
saying all (wo)men are not saint(e)s. It all started with the PDP-11,
which defined the basic instruxion set architexure for practically all
new machines. Take a look at the 68000 & say, `this is a pdp-11.'
Take a look at the National 32032 & say `this is a VAX'. Take a look
at the Zilog z800[0[0]] & say `this is a PDP or a VAX'. The basix of
these machines seems to be:

	1) an array of <power of two> registers.
	2) 8 bit bytes, 16 bit words, 32 bit longs
	3) stack pointer with pre-decrement push, post-increment pop
	4) NZVC condition codes set by computational instruxions
	5) 16 branches testing the above
	6) monads: clear, negate, complement, increment, decrement, test,
		shift/rotate left/right
	7) dyads: add, sub, mul, div, and, or, xor, mov, cmp
	8) aux: jsr, rts, jmp

Variations exist and are relatively minor compared to the similarity.

> Perhaps more practically, if you can learn to code reasonably portably,
> you usually can avoid the major pitfalls and fix a piece of code to be
> actually portable when the need arises without too much trouble (no
> flames, I know, a 200,000 line system would be better off portable to
> start, but if it's reasonable it could be fixed *more* easily than re-written.)
> 
> 	-Barry Shein, Boston University

Couldn't agree more with this paragraph. Especially the last statement.
I might add, tho, that even a program with serious portability problems
is easier to port than rewrite from scratch (assuming that it measures
up on other grounds, like modularity).

	jim		cottrell@nbs
*/
------

kim@mips.UUCP (Kim DeVaughn) (10/10/85)

> It is often said that the whole world is not a VAX. Too bad. That's like
> saying all (wo)men are not saint(e)s. It all started with the PDP-11,
> which defined the basic instruxion set architexure for practically all
> new machines. Take a look at the 68000 & say, `this is a pdp-11.'

PDP-11's?  The IBM 360 series was commercially introduced in 1965, and was
available to selected customers via the 1965-equivalent of IBM's ESP
program (Early Support Program) in 1964.  I'm not a big fan of IBM's,
nor the architecture of the 360/370/303x/308x/309x machines, but in terms
of "defining architectures" for new machines, they have NO competition
by just about any measure (number of machines installed [in the appropriate
class], quantity of installed-base code [$375 Billion+, is the current
estimate], etc.)

I read a book some time ago titled, "The Sun Never Sets On IBM" by Thomas
J. Watson, Sr. as I recall.   Apt title.

/kim
-- 

UUCP:  {decvax,ucbvax,ihnp4}!decwrl!mips!kim
DDD:   415-960-1200
USPS:  MIPS Computer Systems Inc,  1330 Charleston Rd,  Mt View, CA 94043

rcd@nbires.UUCP (Dick Dunn) (10/15/85)

> > ...It all started with the PDP-11,
> > which defined the basic instruxion set architexure for practically all
> > new machines. Take a look at the 68000 & say, `this is a pdp-11.'

If I say that, I quickly argue with myself.  "No it's not--the PDP-11 had
one kind of register, not two.  It didn't have eleventeen different
combinations of addressing modes.  The addressing modes of two-address
instructions were distinct, so that it could do memory-memory operations.
Position-independent code was easy.  It had a comparatively small address
space."  What are the similarities?

> PDP-11's?  The IBM 360 series was commercially introduced in 1965,...
> ...  I'm not a big fan of IBM's,
> nor the architecture of the 360/370/303x/308x/309x machines, but in terms
> of "defining architectures" for new machines, they have NO competition
> by just about any measure (number of machines installed [in the appropriate
> class], quantity of installed-base code [$375 Billion+, is the current
> estimate], etc.)

I know of no basis for claiming that commercial success has any relation to
the definition of computer architecture.  The single notable architectural
concept of the 360... series is having essentially the same instruction set
spanning a wide price and performance range of machines.  In terms of
useful architectural concepts (and particularly in terms of characteristics
of interest in implementing programming languages) the whole IBM mainframe
line is architecturally right where it started--in the mid-'60's.  That
they have such a huge installed base in spite of a crippled architecture
(like a 4K forward-only offset in instructions) is a tribute to IBM's
marketing, sales, and support organizations--certainly not to the
architecture of their machines.
-- 
Dick Dunn	{hao,ucbvax,allegra}!nbires!rcd		(303)444-5710 x3086
   ...Simpler is better.

doug@terak.UUCP (Doug Pardee) (10/17/85)

[why is this here instead of net.arch?]

> the whole IBM mainframe
> line is architecturally right where it started--in the mid-'60's.  That
> they have such a huge installed base in spite of a crippled architecture
> (like a 4K forward-only offset in instructions) is a tribute to IBM's
> marketing, sales, and support organizations--certainly not to the
> architecture of their machines.

Not to take anything away from IBM's very strong marketing, sales, and
support organizations, but...

Something else that IBM understands is that the CUSTOMER is the most
important person there is, and that the customer wants results; the
customer doesn't give a hang about computer architecture and systems
programming languages.  The customer wants a machine that'll run his
telecommunications network and his database.  The customer wants a
machine that will run his programming staff's COBOL programs.  He 
doesn't give a *hoot* if the operating system is written in assembler,
PL/S, or C, or how many registers and addressing modes the CPU supports.
-- 
Doug Pardee -- CalComp -- {calcom1,savax,seismo,decvax,ihnp4}!terak!doug