ANSI X3.4-1968
ANSI X3.4-1968 — это американский национальный стандарт, утверждённый Американским национальным институтом стандартов (ANSI) в 1968 году, который определяет семибитную кодировку символов, известную как ASCII (American Standard Code for Information Interchange). Данный стандарт закрепил таблицу кодирования, состоящую из 128 символов (0–127), включающую управляющие символы, цифры, буквы латинского алфавита, знаки препинания и специальные символы. ANSI X3.4-1968 стал основой для большинства современных компьютерных кодировок и оказал значительное влияние на развитие вычислительной техники, телекоммуникаций и обмена данными.
История
Предпосылки создания
До появления единого стандарта обмена информацией различные производители вычислительной техники использовали собственные кодировки (например, EBCDIC от IBM, BCDIC, FIELDATA). Это создавало серьёзные проблемы при передаче данных между системами разных производителей. В 1960-х годах Американская ассоциация стандартов (ASA, предшественник ANSI) начала работу над унифицированным кодом для обмена данными.
Разработка и утверждение
Работа над стандартом велась комитетом X3, подкомитетом X3.2 (кодовые и символьные наборы). Первая версия стандарта, ASA X3.4-1963, была опубликована в 1963 году. Она содержала 128 кодовых позиций, но отличалась от современного ASCII: например, символ «\» (обратная косая черта) отсутствовал, а символ «←» (стрелка влево) использовался вместо подчёркивания. В 1965 году была выпущена вторая версия (ASA X3.4-1965), которая добавила строчные буквы и изменила некоторые управляющие символы. Окончательная версия, ANSI X3.4-1968, была утверждена в 1968 году и стала наиболее стабильной и широко распространённой. Она включила все символы, знакомые современным пользователям, за исключением знака «доллар» ($), который был добавлен позже в некоторых расширениях.
Влияние на международные стандарты
ANSI X3.4-1968 послужил основой для международного стандарта ISO/IEC 646, опубликованного в 1972 году. ISO 646, в свою очередь, стал базой для национальных вариантов ASCII, таких как русский КОИ-7, японский JIS X 0201 и другие. В СССР стандарт ГОСТ 19768-74 («Система обработки информации. Коды символов») также был основан на ASCII.
Структура кодировки
Общая характеристика
ANSI X3.4-1968 определяет 128 кодовых позиций, каждая из которых соответствует целому числу от 0 до 127. Для представления используется 7 бит, что позволяет закодировать 2^7 = 128 символов. Восьмой бит (старший) в оригинальном стандарте не использовался, но впоследствии применялся для расширенных кодировок (например, ASCII-8, CP437).
Таблица символов
Таблица делится на две основные группы:
- Управляющие символы (0–31 и 127) — 33 кода. Они не отображаются как видимые знаки, а служат для управления устройствами (например, перевод строки, возврат каретки, табуляция). Некоторые из них:
- NUL (0) — нулевой символ, используется для заполнения.
- LF (10) — перевод строки.
- CR (13) — возврат каретки.
- ESC (27) — escape-символ, для ввода управляющих последовательностей.
- DEL (127) — удаление (в перфолентах — пробивка всех дырок).
- Графические символы (32–126) — 95 кодов. Включают:
- Пробел (32) — невидимый символ, разделяющий слова.
- Цифры (48–57) — 0–9.
- Прописные буквы латинского алфавита (65–90) — A–Z.
- Строчные буквы латинского алфавита (97–122) — a–z.
- Знаки препинания и специальные символы (33–47, 58–64, 91–96, 123–126) — !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, ~.
Особенности расположения
- Цифры расположены последовательно, что упрощает арифметические операции.
- Буквы расположены в алфавитном порядке, причём прописные предшествуют строчным. Разница между кодом прописной и соответствующей строчной буквы составляет 32 (например, ‘A’ = 65, ‘a’ = 97).
- Символы пунктуации расположены в порядке, соответствующем их использованию в английском языке.
Применение
В вычислительной технике
ANSI X3.4-1968 стал стандартом де-факто для представления текста в компьютерах, терминалах, принтерах и других устройствах. Он использовался в операционных системах (UNIX, MS-DOS, ранние версии Windows), языках программирования (C, Pascal, Fortran), протоколах передачи данных (TCP/IP, HTTP, FTP).
В телекоммуникациях
Стандарт применялся для кодирования сообщений в телеграфии, телетайпах и системах передачи данных. Управляющие символы (например, CR, LF) использовались для форматирования текста на печатающих устройствах.
В веб-технологиях
ASCII является базовым набором символов для HTML, CSS, JavaScript и других веб-технологий. Все современные веб-браузеры и серверы поддерживают ASCII как подмножество Unicode.
Ограничения и критика
Недостатки для неанглийских языков
ASCII содержит только латинский алфавит, что делает его непригодным для языков с кириллицей, иероглифами, арабским письмом и т.д. Для решения этой проблемы были созданы расширенные кодировки (например, Windows-1251 для русского языка, KOI8-R, CP866). Однако они несовместимы друг с другом, что приводило к проблемам с отображением текста.
Отсутствие поддержки диакритических знаков
В ASCII нет символов с диакритическими знаками (например, é, ü, ñ), что затрудняет использование для французского, немецкого, испанского и других языков.
Ограниченность 7-битного пространства
128 символов недостаточно для одновременного представления всех символов, используемых в большинстве языков мира. Это привело к созданию 8-битных кодировок (например, ISO 8859-1) и, в конечном счёте, к разработке Unicode.
Наследие
Переход к Unicode
С появлением Unicode (стандарт, позволяющий кодировать символы всех письменностей мира) ASCII стал его подмножеством. Первые 128 кодовых позиций Unicode (U+0000–U+007F) полностью соответствуют ANSI X3.4-1968. Это обеспечивает обратную совместимость: любой текст, закодированный в ASCII, корректно отображается в системах, поддерживающих Unicode.
Современное использование
Несмотря на широкое распространение Unicode, ASCII остаётся важным стандартом. Он используется в:
- Исходных кодах программ (особенно на языках C, C++, Python).
- Протоколах интернета (HTTP-заголовки, SMTP-команды).
- Файловых системах (имена файлов в некоторых ОС).
- Встраиваемых системах и микроконтроллерах, где важна экономия памяти.
Интересные факты
- Стандарт ANSI X3.4-1968 иногда называют «ASCII-1968» или просто «ASCII».
- Символ «\» (обратная косая черта) был добавлен в версии 1968 года для использования в языке программирования C (для escape-последовательностей).
- Управляющий символ «ESC» (27) используется в управляющих последовательностях ANSI (например, для изменения цвета текста в терминалах).
- В некоторых ранних реализациях ASCII символ «@» (64) отсутствовал; он был добавлен в версии 1968 года.
Источники
- American National Standard for Information Interchange, ANSI X3.4-1968.
- ISO/IEC 646:1991, Information technology — ISO 7-bit coded character set for information interchange.
- Mackenzie, Charles E. (1980). Coded Character Sets: History and Development. Addison-Wesley.
- ГОСТ 19768-74. Система обработки информации. Коды символов.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →