Ich habe heute erfahren, dass es in C99 und C ++ Digraphen gibt. Folgendes ist ein gültiges Programm:
%:include <stdio.h>
%:ifndef BUFSIZE
%:define BUFSIZE 512
%:endif
void copy(char d<::>, const char s<::>, int len)
<%
while (len-- >= 0)
<%
d<:len:> = s<:len:>;
%>
%>
Meine Frage ist: Warum existieren sie?
and
undor
). Dieser ist auf einer nützlicheren Form gestellt und hat mehr positive Stimmen. Bearbeiten: sollte stattdessen ein Duplikat von: stackoverflow.com/questions/1234582/… sein .:-)
Antworten:
Digraphen wurden für Programmierer erstellt, die keine Tastatur hatten, die den ISO 646-Zeichensatz unterstützte.
http://en.wikipedia.org/wiki/C_trigraph
quelle
Ich glaube, dass ihre Existenz auf die Möglichkeit zurückzuführen ist, dass irgendwo jemand einen Compiler mit einem Betriebssystem verwendet, dessen Zeichensatz so archaisch ist, dass er nicht unbedingt alle Zeichen enthält, die C oder C ++ benötigen, um die gesamte Sprache auszudrücken .
Es sorgt auch für gute Einträge im IOCCC .
quelle
Ich denke, das liegt daran, dass einige der Tastaturen auf diesem Planeten möglicherweise keine Tasten wie '#' und '{' haben.
quelle
Die Digraphen und Trigraphen in C / C ++ stammen aus den Tagen von Sechs-Bit-Zeichensätzen, die von CDC6000 (60 Bit), Univac 1108 (36 Bit), DECsystem 10 und 20 Systemen (36 Bit) verwendet wurden und jeweils proprietäre 64 Zeichen verwendeten Set nicht kompatibel mit ASA X3.4-1963 (jetzt bekannt als ANSI X3.4-1963 "7-Bit American National Standard Code für den Informationsaustausch"). Die neueste Version ist ANSI X3.4-1986.
Da diese Systeme nicht in der Lage waren, alle 96 grafischen Codepunkte darzustellen, wurden viele weggelassen. Darüber hinaus wurde X3.4 mit anderen National Standard Institutes (GBR, GER, ITA usw.) koordiniert, und in X3.4 gab es Codepunkte, die als nationale Ersatzzeichen bezeichnet wurden - das offensichtlichste Beispiel ist das # für das Britsh Pound Das Symbol (offensichtlich, weil der Name des # -Zeichens "Pfundzeichen" aus seiner herkömmlichen Verwendung im US-Handel ist - vor der Entwicklung von Twitter) und das "{''} 'wurden auch als nationale Ersatzzeichen bezeichnet.
Daher wurden Digraphen eingeführt, um einen Mechanismus für jene Computersysteme bereitzustellen, die nicht in der Lage sind, die Zeichen darzustellen, und auch für Datenendgeräte, die den widersprüchlichen Codepunkten nationale Ersatzzeichen zuweisen. Di / Tri-Graphen sind zu einem archaischen Artefakt der Computergeschichte geworden (ein Fach, das heutzutage in der Informatik nicht unterrichtet wird).
Ein ausführliches Dokument zu diesem Thema finden Sie hier: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf
quelle