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