Discussion:
Umlaute in Variablennamen
(zu alt für eine Antwort)
news.individual.de
2006-04-10 22:09:34 UTC
Permalink
Hallo,

mußte heute mit erstaunen feststellen, dass MS Visual C++ in der
Microsoft-Entwicklungsumgebung 2003 Version 7.1.3088 deutsche Umlaute
wie ä,ü,ö etc. als Variablenbezeichner akzeptiert.

Ist dieses Feature Bestandteil des neuesten C++ - Standards (Welcher ist
das?) oder geht hier Bill Gates eigene Wege?

Kurze Antwort genügt.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+***@bud.prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-***@bud.prima.de
kanze
2006-04-12 13:09:45 UTC
Permalink
Post by news.individual.de
mußte heute mit erstaunen feststellen, dass MS Visual C++ in
der Microsoft-Entwicklungsumgebung 2003 Version 7.1.3088
deutsche Umlaute wie ä,ü,ö etc. als Variablenbezeichner
akzeptiert.
Ist dieses Feature Bestandteil des neuesten C++ - Standards
(Welcher ist das?) oder geht hier Bill Gates eigene Wege?
Beide. Laut der Norm darf alle Unicode Alpha-Zeichen in Symbolen
verwendet werden. Damit man die auch in reinen ASCII eingeben
kann gibt es die sogenannten »Universal Character Names«, eine
Fluchtfolge (sagt man sowas auf Deutsch?) mit \uxxx oder
\Uxxxxxxxx, wo x ein Hexadezimalziffer ist. Dazu: "Any source
file character not in the basic source character set is replaced
by the universal-character-name that designates that character."

Die »source character set« hängt von der Implementierung ab.
Genauso welche zusetzlichen Zeichen gekannt werden, und wie sie
codiert werden. Laut Definition, also, geht jeder Compiler seine
eigene Wege.
Post by news.individual.de
Kurze Antwort genügt.
Kurze Antwort: Finger weg. Einmal ist keinmal, aber in dieser
Hinsicht ist Microsoft weit im Voraus vor den meisten anderen
Compiler. Und auch, weil welche Codierungen unterstützt wird und
wie man es angibt hängen stark von der Implementierung ab.

Denk mal ein bisschen daran. Ich arbeite in ISO 8859-1. Du
lieferst mir eine Header-Datei in UTF-8. Die Codierung muss von
Datei irgendwie abhängig sein -- der Compiler soll meine Datei
in ISO 8859-1 lesen, und während den include soll er UTF-8
benutzen. Ich würde fast vermuten, dass die meisten
Unix-Compiler halt nach der LC_CTYPE Umgebungsvariable arbeiten.
Mit der Wirkung, dass die Legalität deines Programms hängt von
Umgebungsvariablen ab.

Dazu: möchtest du auf Programmen arbeiten, wo die Symbole die
großen griechischen Buchstaben Alpha und Xi enthalten, neben den
gängigen A und X. Soll noch schlimmer sein, als O, 0, l und 1.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+***@bud.prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-***@bud.prima.de
Rolf Magnus
2006-04-12 17:22:50 UTC
Permalink
Post by kanze
Post by news.individual.de
mußte heute mit erstaunen feststellen, dass MS Visual C++ in
der Microsoft-Entwicklungsumgebung 2003 Version 7.1.3088
deutsche Umlaute wie ä,ü,ö etc. als Variablenbezeichner
akzeptiert.
Ist dieses Feature Bestandteil des neuesten C++ - Standards
(Welcher ist das?) oder geht hier Bill Gates eigene Wege?
Beide. Laut der Norm darf alle Unicode Alpha-Zeichen in Symbolen
verwendet werden. Damit man die auch in reinen ASCII eingeben
kann gibt es die sogenannten »Universal Character Names«, eine
Fluchtfolge (sagt man sowas auf Deutsch?)
Nein. Man nennt es üblicherweise Escape-Sequenz, hat also den englischen
Begriff weitgehend übernommen. Fluchtfolge klingt mehr nach Polizei, die
einen davonrennenden Verbrecher jagt ;-)
Post by kanze
Kurze Antwort: Finger weg. Einmal ist keinmal, aber in dieser
Hinsicht ist Microsoft weit im Voraus vor den meisten anderen
Compiler. Und auch, weil welche Codierungen unterstützt wird und
wie man es angibt hängen stark von der Implementierung ab.
Wozu wurde das überhaupt eingeführt? Welchen Vorteil erhoffte man sich
davon, jetzt auch Variablennamen in Klingonisch schreiben zu können? Oder
sind die nicht alphanumerisch?
Post by kanze
Denk mal ein bisschen daran. Ich arbeite in ISO 8859-1. Du
lieferst mir eine Header-Datei in UTF-8. Die Codierung muss von
Datei irgendwie abhängig sein -- der Compiler soll meine Datei
in ISO 8859-1 lesen, und während den include soll er UTF-8
benutzen. Ich würde fast vermuten, dass die meisten
Unix-Compiler halt nach der LC_CTYPE Umgebungsvariable arbeiten.
Mit der Wirkung, dass die Legalität deines Programms hängt von
Umgebungsvariablen ab.
Dazu: möchtest du auf Programmen arbeiten, wo die Symbole die
großen griechischen Buchstaben Alpha und Xi enthalten, neben den
gängigen A und X. Soll noch schlimmer sein, als O, 0, l und 1.
Geht das eigentlich auch in C? Das würde die Möglichkeiten beim IOCCC ja
gleich mal vervielfachen ;-)
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+***@bud.prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-***@bud.prima.de
kanze
2006-04-13 14:01:53 UTC
Permalink
Post by Rolf Magnus
Post by kanze
Post by news.individual.de
mußte heute mit erstaunen feststellen, dass MS Visual C++
in der Microsoft-Entwicklungsumgebung 2003 Version 7.1.3088
deutsche Umlaute wie ä,ü,ö etc. als Variablenbezeichner
akzeptiert.
Ist dieses Feature Bestandteil des neuesten C++ - Standards
(Welcher ist das?) oder geht hier Bill Gates eigene Wege?
Beide. Laut der Norm darf alle Unicode Alpha-Zeichen in
Symbolen verwendet werden. Damit man die auch in reinen
ASCII eingeben kann gibt es die sogenannten »Universal
Character Names«, eine Fluchtfolge (sagt man sowas auf
Deutsch?)
Nein. Man nennt es üblicherweise Escape-Sequenz, hat also den
englischen Begriff weitgehend übernommen. Fluchtfolge klingt
mehr nach Polizei, die einen davonrennenden Verbrecher jagt
;-)
So hätte ich auch gedacht. Aber in Siemens-Deutsch hat es wohl
Fluchtzeichen gegeben (damals, d.h. Anno 1988 ungefähr). Also
habe ich gedacht...
Post by Rolf Magnus
Post by kanze
Kurze Antwort: Finger weg. Einmal ist keinmal, aber in
dieser Hinsicht ist Microsoft weit im Voraus vor den meisten
anderen Compiler. Und auch, weil welche Codierungen
unterstützt wird und wie man es angibt hängen stark von der
Implementierung ab.
Wozu wurde das überhaupt eingeführt?
Politischer Druck? Warum Trigraphs?
Post by Rolf Magnus
Welchen Vorteil erhoffte man sich davon, jetzt auch
Variablennamen in Klingonisch schreiben zu können? Oder sind
die nicht alphanumerisch?
Ich denke schon, dass wenn man Programme schreibt, die nur im
Haus gewartet werden, dass es doch interessant sein könnte,
alles mehr oder weniger in seiner eigenen Sprache zu machen. Ich
habe wohl Dokus auf Deutsch oder auf Französisch schreiben
müssen, und warum sollen die Dokus und den Code in
unterschiedenen Sprachen dann sein.

Dagegen bin ich nicht überzeugt, dass man die vollständigen
Konsequenzen davon in Sicht gehabt habe. Dafür braucht man
eigentlich ein bisschen Erfahrung mit der Sache, um zu sehen,
was tatsächlich funktionniert, und was nicht.
Post by Rolf Magnus
Post by kanze
Denk mal ein bisschen daran. Ich arbeite in ISO 8859-1. Du
lieferst mir eine Header-Datei in UTF-8. Die Codierung muss
von Datei irgendwie abhängig sein -- der Compiler soll meine
Datei in ISO 8859-1 lesen, und während den include soll er
UTF-8 benutzen. Ich würde fast vermuten, dass die meisten
Unix-Compiler halt nach der LC_CTYPE Umgebungsvariable
arbeiten. Mit der Wirkung, dass die Legalität deines
Programms hängt von Umgebungsvariablen ab.
Dazu: möchtest du auf Programmen arbeiten, wo die Symbole die
großen griechischen Buchstaben Alpha und Xi enthalten, neben den
gängigen A und X. Soll noch schlimmer sein, als O, 0, l und 1.
Geht das eigentlich auch in C? Das würde die Möglichkeiten
beim IOCCC ja gleich mal vervielfachen ;-)
Offiziell ist es auch Bestandteil C99. In der Tat ist C99 fast
stillgeboren -- konforme Compiler dafür sind noch seltener, als
100% konformen C++ Compiler (mit export).

Es gibt auch in Java, wo es tatsächlich einigermassen
unterstützt wird. Aber in Java ist est einfacher: keine
Include-Dateien, und einen festgelegten Zeichensatz in der
Class-Dateien.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+***@bud.prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-***@bud.prima.de
Jens Müller
2006-04-13 19:21:14 UTC
Permalink
Post by Rolf Magnus
Wozu wurde das überhaupt eingeführt? Welchen Vorteil erhoffte man sich
davon, jetzt auch Variablennamen in Klingonisch schreiben zu können? Oder
sind die nicht alphanumerisch?
Wo in Unicode sind die jetzt spezifiziert? Mir ist nur ein recht alter
Beschluß bekannt, wo ein Klingonisch-Zeichensatz (der, der nur eine
Umschrift des lateinischen Alphabets darstellt, Paramount hat ja noch
nen "richtigen" in der Hinterhand) als "not suitable for encoding"
abgelehnt wurde.

F'Up2 de.comp.standards
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+***@bud.prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-***@bud.prima.de
Jakob Bieling
2006-04-12 13:03:00 UTC
Permalink
Post by news.individual.de
mußte heute mit erstaunen feststellen, dass MS Visual C++ in der
Microsoft-Entwicklungsumgebung 2003 Version 7.1.3088 deutsche Umlaute
wie ä,ü,ö etc. als Variablenbezeichner akzeptiert.
Ist dieses Feature Bestandteil des neuesten C++ - Standards (Welcher
ist das?) oder geht hier Bill Gates eigene Wege?
Ist Standard C++ (2003). Siehe Appendix E.
--
jb

(reply address in rot13, unscramble first)
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+***@bud.prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-***@bud.prima.de
Lesen Sie weiter auf narkive:
Loading...