Backtick, at-sign, dollar-sign: legal in source?




I was reading the C and C++ standards, and I see that they both
specify the same 91-character "basic source character set":

Both the basic source and basic execution character sets shall
have the following members:
the 26 uppercase letters of the Latin alphabet:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
the 26 lowercase letters of the Latin alphabet:
a b c d e f g h i j k l m n o p q r s t u v w x y z
the 10 decimal digits:
0 1 2 3 4 5 6 7 8 9
the following 29 graphic characters
! " # % & ' ( ) * + , - . / :
; < = > ? [ \ ] ^ _ { | } ~
the space character, and control characters representing
horizontal tab, vertical tab, and form feed.

(I'm tempted to bring up the question of why vertical-tab
and form-feed are in there at all, since the effect of
inserting them into source is very editor-dependent, and
I believe they're rarely or never used, and un-needed;
but I'll skip that for now.)

I find it very odd that while this includes ALMOST every glyphical
character you can type from a standard 101 or 104 key keyboard,
both languages omit the following 3 characters: ` @ $
(backtick, at-sign, dollar-sign).

(Why is that? What reason did the designers of C have for
excluding backtick, at-sign, and dollar-sign? Were they not
present on keyboards? Or perhaps using them would have
conflicted with some other software or operating system?)

If I include those 3 characters typed directly into double-quoted
string literals in source code, like so:

char MyString[] = "This is @ the point of being `$PUZZLING'\n";

Is that legal or illegal? (Note that it contains all three of the
apparently "forbidden" characters.)

--
Curious,
Robbie Hatley
lonewolf aatt well dott com
www dott well dott com slant user slant lonewolf slant


.