Введение

Два или три символа, рассматриваемые как один

В компьютерном программировании диграфы и триграфы — это последовательности из двух и трех символов соответственно, которые встречаются в исходном коде и, согласно спецификации языка программирования, должны интерпретироваться как единый символ. Триграфы были удалены из языка C++ и будут удалены из C начиная с C23, поэтому, вероятно, уже редко используются на практике в C и в других распространенных языках (за исключением их использования в языке J). В современном мире Unicode/UTF-8 (даже с использованием только ASCII) триграфы больше не нужны при разработке языков, поскольку считались обременительными, равно как и диграфы, которые, вероятно, имеют очень мало пользователей, по крайней мере, в этих языках. Существуют различные причины для использования диграфов и триграфов: на клавиатурах может не быть клавиш для всех символов языка, ввод специальных символов может быть затруднен, текстовые редакторы могут резервировать некоторые символы для специальных целей и так далее. Триграфы также могут использоваться в некоторых кодировках EBCDIC, в которых отсутствуют такие символы, как { и }.

История

Основной набор символов языка программирования C является подмножеством набора символов ASCII, включающим девять символов, не входящих в инвариантный набор символов ISO 646. Это может вызвать затруднения при написании исходного кода, если используемая кодировка (и, возможно, клавиатура) не поддерживает ни один из этих девяти символов. Комитет ANSI C разработал триграфы как способ ввода исходного кода с помощью клавиатур, поддерживающих любую версию набора символов ISO 646.