In
<cc42e2f56d60f24fb8a6bcc639d1d96331ad0...@samtcasxmb46.usa.dce.usps.gov>,
on 05/15/2015
at 06:54 PM, "Hansen, Dave L - Eagan, MN" <[email protected]>
said:
>My Square Brackets disappeared and my Java won't compile.
What code points get sent? What is your ISPF terminal type? What
compiler and options are you using?
>"C is another problem child.
It may be an obsolte, ugly and unsafe language, but the fault here
does not lie with C.
>It uses funky characters
No. The funkiness resides in IBM assigning them to different code
points in different EBCDIC code pages.
>like the square brackets '[]',
Bog standard ASCII, and languages older than EBCDIC use them.
>curly brackets '{}'
Bog standard ASCII
>and broken vertical bar '|'.
Bog standard ASCII
>These move around (or disappear) depending on your code page.
Aha! So it's the EBCDIC code pages, not C.
>But with C there's another catch: it's designed to use EBCDIC 1047,
>not EBCDIC 0037."
No; it's not designed to use either. Don't confuse the compiler with
the language.
>"So why is C designed for EBCDIC 1047?
It isn't
>Because z/OS Unix Systems Services (USS) is also designed for it."
It's not USS and it's newer than C.
>"When IBM created USS for z/OS, it makes sense that it had to work
>in EBCDIC. The POSIX standard for UNIX doesn't require the use of
>ASCII,
So? IBM acknowledged the importance of ASCII. Causing problems for C
programmers is just one symptom.
>and z/OS is an EBCDIC operating system. IBM really didn't have a
>choice."
IBM could easily[1] have *consistently* mapped all ASCII graphics
(41-7F) into EBCDIC, instead of creating a Tower of Babel; IBM had a
choice, and chose the wrong one.
>"The problem is that UNIX, and its core programming language C,
>rely on characters that don't exist in some EBCDIC codepages.
No, the problm is that IBM does not properly support either C or
ASCII.
>EBCDIC 1047 is designed to include all the characters USS needs
Not in a manner consistent with other code pages. And it's not USS.
>effectively all the characters from Extended ASCII: ISO8859-1
There is no etended ASCII, other than the abortive ASCII-8. ISO-8859-1
is a ISO standard character set, and is no more ASII than ISO-8859-2
through -15.
[1] With the possible exception of CKJ code pages.
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
ISO position; see <http://patriot.net/~shmuel/resume/brief.html>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN