sourcecode

왜 C와 C++에 디그래프가 있는 거죠?

copyscript 2022. 8. 21. 19:53
반응형

왜 C와 C++에 디그래프가 있는 거죠?

C99와 C++에 디그래프가 있다는 것을 오늘 알았습니다.다음은 유효한 프로그램입니다.

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

제 질문은 그들이 왜 존재하느냐는 것입니다.

ISO 646 문자 집합을 지원하는 키보드가 없는 프로그래머를 위해 디그래프가 생성되었습니다.

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

나는 그들의 존재를 추적해 볼 수 있는 것은 운영체제를 사용하는 컴파일러의 문자 집합이 너무 구식이어서 반드시 C나 C++가 언어 전체를 표현하기 위해 필요한 모든 문자를 가지고 있지 않다고 생각한다.

또한 IOCC에 좋은 엔트리를 만들 수 있습니다.

내 생각엔 지구상의 몇몇 키보드에는 '#'과 '{'와 같은 키가 없을 수도 있기 때문인 것 같아.

C/C++의 디그래프 및 트리그래프는 CDC6000(60비트), Univac 1108(36비트), DEC 시스템 10 및 20 시스템(36비트)에서 사용되는 6비트 문자 집합의 일수에서 유래하며, 각각 ASA X3.4-1963(현재는 ANSI-363으로 인식됨)과 호환되지 않는 독자적인 64자 집합을 사용했습니다.hange").최신 리비전은 ANSI X3.4-1986입니다.

이러한 시스템은 96개의 그래픽 코드 포인트를 모두 나타낼 수 없었기 때문에 많은 부분이 생략되었습니다.또한 X3.4는 다른 National Standard Institutes(GBR, GER, ITA 등)와 연계되어 X3.4에는 국가 대체 문자로 지정된 코드 포인트가 있습니다.가장 명백한 예는 영국 파운드 기호 #입니다(미국에서는 #문자의 이름이 "파운드 기호"이기 때문입니다).트위터가 발전하기 이전)과 '{' '}'도 국가 대체 문자로 지정되었다.

따라서 문자를 표현할 수 없는 컴퓨터 시스템과 상충되는 코드 포인트에 국가 대체 문자를 할당하는 데이터 단말 장치에 메커니즘을 제공하기 위해 디그래프가 도입되었습니다.Di/Tri-graphs는 컴퓨터 역사의 오래된 아티팩트가 되었습니다(요즘 컴퓨터 과학에서는 가르치지 않는 주제).

이 주제에 관한 상세한 문서는 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf 에서 찾을 수 있습니다.

언급URL : https://stackoverflow.com/questions/432443/why-are-there-digraphs-in-c-and-c

반응형