[comp.lang.forth] ANS efforts

REEVES@VANDVMS1.BITNET ("Terry W. Reeves") (10/30/90)

I have read a number of messages recently attacking compromises the ANS
Technical Committee has made in order to produce a standard. The most recent
concerns VOCABULARY. Before that it was / and MOD. Before that it was ....
I personally support these compromises. While they may not always be the
best solution available by any given group's criteria, they do tend to solve
what I consider to be two very crucial problems. 1) They allow me to write
a program that will hopefully be able to run on a wide range of hardware
platforms with many different Forth systems while at the same time 2) not
breaking programs that have always run in the past. I have learned to detest
having to fix code that worked last week or last month or last year simply
because the underlying system changed. If I was told by the vendor of my
software that I would have to change years of software that was debugged
and working just because certain Forth words that were being used had changed
in some nontrivial way, I would at least entertain the idea of using some
other vendor's package. Therefore, if I were the vendor of some package
that had a substantial number of users, I would resist any effort create
a standard that would force me or my users to choose between a package that
conforms to the standard and one that does not. With the compromises, I
can write new code using the standard as much as possible so that it will
be as portable as possible, and I will be able to continue to run old programs
with the same package. I have heard very similar arguments from a
representative of DEC at a Computing in High Energy Physics conference at
to why they were opposed to certain changes that might be made to the FORTRAN-
8X standard. They were simply trying to make sure that old Fortran code
that dated back to the 60's would still work. They did not want to lose
those customers. As for myself, I would not want to have to change thousands
upon thousands of lines of Fortran to conform to a new standard, nor would
I want to have to support two Fortran compilers.

                                                   Terry Reeves

rob@innovus.UUCP (Rob Sciuk) (11/01/90)

In article <9010311403.AA07645@ucbvax.Berkeley.EDU> "Terry W. Reeves" <REEVES%VANDVMS1.BITNET@SCFVM.GSFC.NASA.GOV> writes:
>I have read a number of messages recently attacking compromises the ANS
>Technical Committee has made in order to produce a standard. The most recent
>concerns VOCABULARY. Before that it was / and MOD. Before that it was ....
>I personally support these compromises. While they may not always be the

	[ stuff deleted ... ]

>                                                   Terry Reeves

I would also like to voice my support for the ANS group.  Although I may not
agree entirely with the Basis, A standard is better than NO standard.  Let us
not forget the `extensibility' and `redefinability' (are those words?:-)
inherent in the language.  If we do not agree with a feature in the ANS 
standard, we can re-implement the offending words in an implementation 
independant manner (on top of ANS) to make the ANS look like anything we want, 
and THEN compile your application on top.

What the ANS Standard provides is a guarantee that the `onion-skin' necessary
to support your old applications WILL BE PORTABLE since it is written in 
ANS Forth.  What we can reasonably expect, IMHO, is a series of EMULATORS for 
Fig, F79, MVP, F83, etc etc to run on ANY standard ANS implementation.  Thus 
ANS CAN APPEAR TO BE WHATEVER DIALECT YOU WANT --- it is the nature of Forth.  
Whether these emulators remain proprietary, or are offered into the public 
domain remains to be seen.

As someone who makes a living from migrating VERY LARGE software packages
written in various languages across different architectures, compilers, dialects
etc. ... I do understand the desire to have applications port unchanged.  
Further I do understand the performance penalty which may occur with the 
approach I've outlined, but in this case I value portability much higher than 
application speed, otherwise why have a standard at all?  

Terry makes a good point with FORTRAN 88.  Having seen a draft of the proposed
standard for that language, it immediately appears that FORTRAN 77 (almost) C, 
Ada, Pascal, PL/1 and Algol are all legal subsets of the FORTRAN 88 (well, maybe
not ALL of those ;-).  FORTRAN 66 and FORTRAN IV are not.  They were legal 
subsets of the 77 standard, and warnings were given in that standard not to 
use old features.  FORTRAN 88 WILL BREAK FORTRAN 66 CODE BECAUSE FORTRAN IS 
NOT EXTENSIBLE!  This is a standards effort that got out of hand!  The
maintainers of FORTRAN IV programs have a much bigger problem than do the 
Forth world particularly in light of the spaghetti like nature of the old 
applications as encouraged by the language itself.  (Perhaps a FORTRAN IV 
emulator can be built on ANS Forth as well? :-)

Let us not take the parochial view of whether ANS will bust my own application
but rather, let us understand how ANS differs from, say Forth-83, and attempt
to characterize just how to emulate the 83 standard on top of ANS for those 
applications which require 83.  I'm sure in the final analysis, the effort
required in this task will be much less than flaming the committee (and much
more constructive).

In his `Computer Language' column P.J. Plauger gives a detailed description of
the agony of working on the ANSI C standards committee (I'm sorry I can't give
the reference but it was within the last year or so).  From this I gain a small
appreciation of the process.  My hat is off to them!  I continue to support
their efforts.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Rob Sciuk	rob%innovus@maccs.dcss.mcmaster.ca
Innovus Inc.	204-200 James St S. Hamilton, Ont. 	Phone:	(416) 529-8117 
		{not a flame ... merely a glimmer ...}	Fax:	(416) 572-9586	
<<< Note:  to avoid routing problems do not r(eply), use my address as above >>>