Question

J'ai appris aujourd'hui qu'il existe des digraphes en C99 et C ++. Ce qui suit est un programme valide:

%: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:>;
    %>
%>

Ma question est la suivante: pourquoi existent-ils?

Était-ce utile?

La solution

Les digraphes ont été créés pour les programmeurs dépourvus de clavier prenant en charge le jeu de caractères ISO 646.

http://en.wikipedia.org/wiki/C_trigraph

Autres conseils

Je pense que leur existence peut être attribuée à la possibilité que, quelque part, quelqu'un utilise un compilateur avec un système d'exploitation dont le jeu de caractères est tellement archaïque qu'il ne contient pas nécessairement tous les caractères. C ou C ++ doivent exprimer tout le langage.

De plus, cela permet de bonnes entrées dans le IOCCC .

Je pense que c'est parce que certains claviers de cette planète n'ont peut-être pas de touches telles que '#' et '{'.

Les digraphes et trigraphes de c / c ++ proviennent de l’époque des jeux de caractères de six bits utilisés par les systèmes CDC6000 (60 bits), Univac 1108 (36 bits), DECsystem 10 et 20 (36 bits), chacun utilisant jeu de 64 caractères propriétaire non compatible avec l'ASA X3.4-1963 (maintenant connu sous le nom ANSI X3.4-1963 «Code national américain à 7 bits pour l'échange d'informations»). La dernière révision est ANSI X3.4-1986. Étant donné que ces systèmes étaient incapables de représenter tous les 96 points de code graphiques, beaucoup ont été omis. En outre, X3.4 a été coordonné avec d'autres instituts nationaux de normalisation (GBR, GER, ITA, etc.) et il existait des points de code dans X3.4 qui étaient désignés comme des caractères de remplacement nationaux - l'exemple le plus évident est le # de la livre sterling. symbole (évident car le nom du caractère # est "signe dièse" de son usage conventionnel dans le commerce américain - avant l’évolution de Twitter) et le '{' '}' 'ont également été désignés comme caractères nationaux de remplacement. Ainsi, les digraphes ont été introduits afin de fournir un mécanisme pour les systèmes informatiques incapables de représenter les caractères, ainsi que pour les équipements terminaux de traitement de données qui affectaient des caractères de remplacement nationaux aux points de code en conflit. Les di / tri-graphs sont devenus un artefact archaïque de l'histoire de l'informatique (un sujet non enseigné en informatique ces jours-ci) - Un article exhaustif sur ce sujet peut être trouvé ici: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.9.6.678&rep = rep1 & type = pdf

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top