[comp.lang.ada] portability

emery@MITRE-BEDFORD.ARPA (Emery) (12/19/86)

I wish I could honestly say "You can't be serious..." when you say that your
co-workers don't believe that a program in Ada (or any other HOL) will not
produce the same results when compiled into two different instruction set
architectures.  Do your co-workers have doubts about Fortran?  How about
Unix, which was originally implemented on a PDP11, and now runs on everything
from an IBM-PC to a Cray?  Sure, there are machine dependencies that have to
be resolved, but I think that language portability has been pretty well proven
by now.  

Unfortunately, I can believe that you know people who don't believe this.  It's
a sad commentary on our profession that these people exist.

					Dave Emery
					MITRE Corp.
p.s.  These are my opinions, not the opinions of MITRE Corp. the DoD, or anyone
else...

bzs@bu-cs.BU.EDU (Barry Shein) (12/20/86)

>I wish I could honestly say "You can't be serious..." when you say that your
>co-workers don't believe that a program in Ada (or any other HOL) will not
>produce the same results when compiled into two different instruction set
>architectures...

>Unfortunately, I can believe that you know people who don't believe this.  It's
>a sad commentary on our profession that these people exist.
>
>					Dave Emery
>					MITRE Corp.

Now, now, let's not be sooo harsh. Issues like hardware representation
of floating point numbers, their precision and accuracy, round-offs
(eg. guard digits) during intermediate calculations and how the
language deals with these differences (if at all) is a valid question.
Machines can vary greatly in this respect and it could be critical
(the original poster specifically spoke about generating the same
output.) If the skeptics need to know if they can write some massive
simulation using heavy floating point with deep convolutions and just
ship it to another machine and assume it will behave the same they may
have valid concerns, no?

Just because it compiles and runs doesn't mean the answers will be
correct. Thank heavens for those "naive" users to whom 'produces the
same output' doesn't mean 'produces the same output give or take the
following 10,000 subtle details of floating point hardware
differences' (which of course could very well mean 'does not produce
the same output'.)

In fact, if this is the issue (and there are others, such as memory
limits), then the answer can only be a big "maybe". There are no easy
blanket answers, someone will have to do their homework.

	-Barry Shein, Boston University