On 24/12/16 12:30, Bernd Oppolzer wrote:
Am 24.12.2016 um 12:50 schrieb Mark Morgan Lloyd:

You are mentioning SUCC and PRED with CHAR; that is a very cood example.

It's not so much a good example as a specific sticking point that was mentioned in earlier discussion on the ML.

These functions are implemented based on the underlying character set;
that means, that SUCC('R') is not 'S' on EBCDIC, because there is a gap
between
'R' and 'S in the EBCDIC codepage (six other characters between 'R' and 'S'
which are not alphabetic).

This is a portability problem which appears at the source code level (!)
and cannot be healed by the compiler. It is the same with the C language,
and the sensible programmer has to deal with this, if he or she wants to
have his or her programs really portable.

At least a-f are consecutive, and it's still possible to switch letter case with an addition. I've used a tool in the past, written by what I have to assume was one of the Three Wise Men, which made no assumptions other than that 0-9 were consecutive: everything else was specified on the first line of every file.

My problems with the Stanford compiler were different; if the compiler
generates
code which will not run on a platform using a different code page,
because it generates
branch tables when implementing case statements that imply a certain
code page,

Ouch :-(

Regarding ^:

"my" compiler supports different representations for the pointer symbol,
and for other
critical symbols, too:

^  @  ->   for the pointer symbol (I use -> most of the time)
[   (.   (/   for arrays
{   (*  /*   for comments  ("comment" is supported, too, for historic
reasons)

/* was the form used in the first edition of Wirth's description of Pascal (might have been before Jensen was there to help out). However I'd strongly suggest deprecating @ and replacing it with another digraph, it's used as the address-of operator in Turbo Pascal and its successors.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other

Reply via email to