Warum gibt es Digraphen in C und C++?
Ich heute gelernt, dass es Digraphen in C99 und C++. Das folgende 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?
- Überprüfen meine übersetzung? % : # ist, und <% %> ist {}, und <: :> ist []. Ist das richtig?
- Die wahre Antwort: weil IBM war laut und Bestand darauf, dass es auf jeden.
- Die Abstimmung zu öffnen. Diese Frage ist spezifischer als das (nur über
and
undor
). Dieser ist gestellt, die auf eine weitere nützliche form und hat mehr upvotes. Edit: sollte ein Duplikat von: stackoverflow.com/questions/1234582/... statt. - Die richtige Antwort: So kann man schreiben obfuscated code
:-)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Digraphen erstellt wurden, für Programmierer, die nicht über eine Tastatur, die unterstützt der ISO 646 Zeichensatz.
http://en.wikipedia.org/wiki/C_trigraph
Ich glaube, dass Ihre Existenz kann zurückverfolgt werden bis in die Möglichkeit, dass irgendwo jemand mit einem compiler mit einem Betriebssystem, dessen Zeichensatz ist so archaisch, dass es nicht unbedingt alle Zeichen, die in C oder C++ zum Ausdruck bringen müssen, die ganze Sprache.
Es macht auch für gute Einträge in IOCCC.
Ich denke, es ist, weil einige der keyboards auf diesem Planeten könnte nicht die Tasten wie '#' und '{'.
Den Digraphen und trigraphs in c/c++ kommen aus den Tagen des sechs-bit-Zeichensätze verwendet, die von der CDC6000 (60 bits), Univac 1108 (36 bits), DECsystem 10 und 20 Systeme (36 bits), von denen jeder verwendet eine proprietäre 64-Zeichensatz nicht kompatibel mit der ASA X3.4-1963 (Jetzt wissen, wie ANSI-X3.4-1963 "7-bit American National Standard Code for Information Interchange"). Die neueste Version ist ANSI-X3.4-1986. Da diese Systeme waren unfähig, die Vertretung all der 96 grafische code-Punkte, viele wurden ausgelassen. Zusätzlich, X3.4 wurde koordiniert mit anderen Nationalen Standard-Instituten (GBR, GER, ITA, usw), und es gab code-Punkte, die in X3.4 benannt wurden als nationale Ersatz-Zeichen - das offensichtlichste Beispiel ist die # für die britischen Pfund-symbol (offensichtlich, weil die Namen der Zeichen " # " ist "Pfund-Zeichen" von der herkömmlichen Verwendung in der US-commerce - vor die die Entwicklung von Twitter) und die '{' '}' wurden auch benannt als nationaler Ersatz-Zeichen. So Digraphen wurden eingeführt, um einen Mechanismus für diejenigen, die computer-Systeme unfähig, die Vertretung der Charaktere, und auch für data terminal equipment, die zugeordnete nationale Ersatz-Zeichen, um den Konflikt stehende code-Punkte. Di - /Tri-Diagramme haben sich zu einem archaischen Artefakt-computing-Geschichte (ein Thema, das nicht gelehrt in der informatik in diesen Tagen) - Eine ausführliche Dokumentation zu diesem Thema finden Sie hier: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf