Диграфы и триграфы в программировании: последовательности символов, заменяемые одним. Устаревают в C/C++ из-за Unicode/UTF-8. История и причины использования.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Два или три символа, рассматриваемые как один
Two or three characters, treated as one
В компьютерном программировании диграфы и триграфы — это последовательности из двух и трех символов соответственно, которые встречаются в исходном коде и, согласно спецификации языка программирования, должны интерпретироваться как единый символ. Триграфы были удалены из языка C++ и будут удалены из C начиная с C23, поэтому, вероятно, уже редко используются на практике в C и в других распространенных языках (за исключением их использования в языке J). В современном мире Unicode/UTF-8 (даже с использованием только ASCII) триграфы больше не нужны при разработке языков, поскольку считались обременительными, равно как и диграфы, которые, вероятно, имеют очень мало пользователей, по крайней мере, в этих языках. Существуют различные причины для использования диграфов и триграфов: на клавиатурах может не быть клавиш для всех символов языка, ввод специальных символов может быть затруднен, текстовые редакторы могут резервировать некоторые символы для специальных целей и так далее. Триграфы также могут использоваться в некоторых кодировках EBCDIC, в которых отсутствуют такие символы, как { и }.
In computer programming, digraphs and trigraphs are sequences of two and three characters, respectively, that appear in source code and, according to a programming language's specification, should be treated as if they were single characters. Trigraphs have been removed from the C++ language, and will be from C as of C23, thus likely aren't used much in practice in C already, nor in any other mainstream language (use of them in the language J is an exception). In the modern world of Unicode/UTF 8 (even just with ASCII) there's no need for trigraphs in language design, which were considered a burden, and neither really digraphs, that likely have very few users, at least in those languages. Various reasons exist for using digraphs and trigraphs: keyboards may not have keys to cover the entire character set of the language, input of special characters may be difficult, text editors may reserve some characters for special use and so on. Trigraphs might also be used for some EBCDIC code pages that lack characters such as { and }.
История
Основной набор символов языка программирования C является подмножеством набора символов ASCII, включающим девять символов, не входящих в инвариантный набор символов ISO 646. Это может вызвать затруднения при написании исходного кода, если используемая кодировка (и, возможно, клавиатура) не поддерживает ни один из этих девяти символов. Комитет ANSI C разработал триграфы как способ ввода исходного кода с помощью клавиатур, поддерживающих любую версию набора символов ISO 646.
The basic character set of the C programming language is a subset of the ASCII character set that includes nine characters which lie outside the ISO 646 invariant character set. This can pose a problem for writing source code when the encoding (and possibly keyboard) being used does not support any of these nine characters. The ANSI C committee invented trigraphs as a way of entering source code using keyboards that support any version of the ISO 646 character set.