質問

今日、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 ++が言語全体を表現する必要があること。

また、 IOCCC に適切なエントリを作成します。

この惑星のキーボードの一部には「#」や「{」などのキーがない可能性があるためだと思います。

c / c ++のダイグラフとトライグラフは、CDC6000(60ビット)、Univac 1108(36ビット)、DECsystem 10および20システム(36ビット)がそれぞれ使用する6ビット文字セットの時代のものです。 ASA X3.4-1963と互換性のない独自の64文字セット(現在はANSI X3.4-1963「7ビット情報交換用米国標準コード」として知られています)。最新のリビジョンはANSI X3.4-1986です。これらのシステムは96個のグラフィカルコードポイントのすべてを表すことができないため、多くは省略されました。さらに、X3.4は他の国家標準機関(GBR、GER、ITAなど)と調整されており、X3.4には国の代替文字として指定されたコードポイントがありました。最も明白な例は、ブリティッシュポンドの#です。記号(#文字の名前は、米国の商取引における従来の使用法からの「シャープ記号」であるため、Twitterの進化以前)および '{' '}'も国の代替文字として指定されていました。このように、ダイグラフは、文字を表現できないコンピュータシステム、および競合するコードポイントに国の代替文字を割り当てたデータ端末機器にメカニズムを提供するために導入されました。 Di / Tri-graphsは、コンピューティングの歴史の古風なアーティファクトになっています(最近のコンピューターサイエンスで教えられていない主題)-この主題に関する網羅的な論文は、次の場所にあります: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep = rep1&amp; type = pdf

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top