whartung wrote:
But then it's not C any more, is it? At least it's not C in terms of being able to port the code to anything. It's "C-like", it's "kinda C", but it's not C. It's C enough to confuse people that it's C, when it's not.
Although I don't speak C, hopefully my comment from Forth will apply.
Before the ANS standard, people were complaining that there's no effective Forth standard. I thought the '83 standard plus a lot of things in common usage and documented in Starting Forth, Thinking Forth, Forth Dimensions, and other publications were enough of a standard; but when the ANS standard came along, it seemed to give Forth more credibility
outside the inner circles. I've added some things from ANS to my own '02 and '816 Forths, but I don't like being confined to some parts of ANS.
There are some parts of ANS Forth that present extra overhead in order to make it more portable across a wide range of processors. My personal opinion is that they may have taken this too far. At some point, we need to acknowledge that no language that lets you get so close to the heart of the computer will be 100% portable. We must consider the programmer(s) and platform(s) involved, and decide on a good balance between portability and optimization. I personally prefer more optimization at the expense of portability. Greater optimization means a particular processor can be used for a wider range of jobs anyway, which could in itself somewhat reduce the need for portability. If code
is taken from one platform to another, modifications may be needed, but they should be rather minor.
Jack Woehr of Vesta who was on the X3J14 committee says in his book "Forth: The New Model", "When Forth, which some hold to be inextricably wedded to hardware, takes responsibility for cross-platform portability, a certain light-footedness and grace will be surrendered." He admits that optimum portability and optimum efficiency don't come at the same point. Fortunately he also says it's not the committee's intention to
force anyone to comply with the standard. What I have is basically Forth-83 with a lot of extensions from my own experience, the books "Starting Forth" and "Thinking Forth," Forth Dimensions magazine, ANS, and common usage.
The transfer is of course that if a C compiler needs minor incompatibilities with common C to make it really sing for 6502, it seems appropriate to take that avenue. I think it would give the 6502 a good promotion.