ANSI X3.17-1977
ANSI X3.17-1977 — это американский национальный стандарт (American National Standard), разработанный комитетом ANSI X3 (ныне INCITS) и утверждённый в 1977 году. Он определяет 7-битный код для обмена информацией (ASCII), а также устанавливает правила представления, передачи и обработки этого кода в вычислительных системах и телекоммуникационном оборудовании. Стандарт является одной из ключевых версий ASCII, которая закрепила его современную структуру, включая набор управляющих символов, графических знаков и правила их кодирования.
История
Предпосылки создания
К началу 1960-х годов в США и других странах существовало множество несовместимых кодировок для представления текстовой информации (например, EBCDIC от IBM, BCDIC, Fieldata). Это создавало серьёзные проблемы при обмене данными между различными системами. В 1963 году Американская ассоциация стандартов (ASA, предшественник ANSI) начала работу над универсальным 7-битным кодом, который получил название ASCII (American Standard Code for Information Interchange). Первая версия стандарта была опубликована в 1963 году (ASA X3.4-1963), но она содержала ряд неопределённостей и не включала строчные буквы.
Разработка ANSI X3.17-1977
К 1970-м годам ASCII уже широко применялся, но требовал уточнения и формализации для обеспечения совместимости между новыми поколениями компьютеров, терминалов и периферийных устройств. Комитет ANSI X3 (компьютерные и информационные системы) приступил к пересмотру предыдущих версий (X3.4-1968). Результатом стал стандарт ANSI X3.17-1977, который:
- Окончательно зафиксировал 95 печатных символов (пробел + 94 графических знака).
- Определил 33 управляющих кода (C0) для управления устройствами, форматированием и передачей.
- Установил строгие правила для представления кода в виде 7-битных байтов (с возможностью использования 8-го бита для контроля чётности или расширения).
- Ввёл единые обозначения для управляющих символов (например, NUL, SOH, STX, ETX, CR, LF, BEL).
Стандарт был утверждён 9 мая 1977 года и вступил в силу 1 января 1978 года. Он заменил предыдущие версии и стал основой для последующих международных стандартов, таких как ISO 646 и ECMA-6.
Структура кода
Кодировка и диапазоны
ANSI X3.17-1977 определяет 128 кодовых позиций (от 0 до 127), каждая из которых соответствует 7-битному двоичному числу (от 0000000 до 1111111). Коды делятся на две основные группы:
- Управляющие символы (C0) — коды 0–31 (0x00–0x1F) и код 127 (0x7F, DEL). Они не отображаются на экране или бумаге, а используются для управления устройствами, форматирования текста и организации передачи данных.
- Графические символы — коды 32–126 (0x20–0x7E). Включают:
- Пробел (код 32).
- Цифры (0–9): коды 48–57.
- Заглавные буквы латинского алфавита (A–Z): коды 65–90.
- Строчные буквы латинского алфавита (a–z): коды 97–122.
- Знаки препинания, математические символы и специальные знаки (например, !, @, #, $, %, ^, &, *, (, ), _, +, -, =, [, ], {, }, |, \, :, ;, ", ', <, >, ,, ., ?, /, ~, `).
Управляющие символы
Стандарт определяет 33 управляющих кода, каждый из которых имеет стандартное мнемоническое обозначение и назначение. Наиболее важные из них:
| Код (дес.) | Мнемоника | Назначение |
|---|---|---|
| 0 | NUL | Пустой символ (заполнитель, не несущий информации) |
| 1 | SOH | Начало заголовка (Start of Heading) |
| 2 | STX | Начало текста (Start of Text) |
| 3 | ETX | Конец текста (End of Text) |
| 4 | EOT | Конец передачи (End of Transmission) |
| 7 | BEL | Звуковой сигнал (Bell) |
| 8 | BS | Возврат на шаг (Backspace) |
| 9 | HT | Горизонтальная табуляция (Horizontal Tab) |
| 10 | LF | Перевод строки (Line Feed) |
| 12 | FF | Перевод страницы (Form Feed) |
| 13 | CR | Возврат каретки (Carriage Return) |
| 27 | ESC | Escape (расширение кода, управляющая последовательность) |
| 127 | DEL | Удаление (Delete) |
Расширение до 8 бит
Хотя ANSI X3.17-1977 определяет только 7-битный код, стандарт допускает использование 8-го бита (старшего бита) для контроля чётности (чётный или нечётный паритет) или для расширения набора символов (например, для национальных алфавитов). В последнем случае 8-битные коды (128–255) могли использоваться для представления букв кириллицы, немецкого умлаута, французских акцентов и т.д., но сам стандарт не регламентирует эти расширения — они определялись отдельными национальными или отраслевыми стандартами (например, KOI-8, CP1251).
Применение
Вычислительная техника
ANSI X3.17-1977 стал основой для кодировки ASCII, которая использовалась в:
- Терминалах и телетайпах (например, DEC VT100, Teletype Model 33) — для ввода и вывода текста.
- Персональных компьютерах (Apple II, IBM PC, Commodore 64) — для хранения и отображения текстовых файлов.
- Операционных системах (Unix, CP/M, MS-DOS) — для представления команд, файловых имён и текстовых данных.
- Протоколах передачи данных (например, RS-232, TCP/IP, HTTP) — для кодирования сообщений и заголовков.
Телекоммуникации
Стандарт широко применялся в системах передачи данных, таких как:
- Телеграфные сети — для кодирования сообщений.
- Модемы — для обмена данными через телефонные линии.
- Факсимильные аппараты — для кодирования изображений и текста.
Международная стандартизация
ANSI X3.17-1977 послужил основой для международного стандарта ISO 646 (1973, 1983, 1991), который определил 7-битный код для обмена информацией. В отличие от ANSI X3.17, ISO 646 допускал замену некоторых символов (например, #, $, @) на национальные знаки (например, £, ¥, §) в зависимости от страны. Это привело к появлению национальных вариантов ASCII (например, UK ASCII, German ASCII, Swedish ASCII).
Критика и ограничения
Отсутствие поддержки нелатинских алфавитов
Основным недостатком ANSI X3.17-1977 является ограниченность 7-битного кода, который может представить только 128 символов. Это делает его непригодным для языков, использующих кириллицу, арабский, китайский, японский или другие алфавиты с большим числом знаков. Для решения этой проблемы были разработаны 8-битные расширения (например, ISO 8859, Windows-1251), а затем и многобайтовые кодировки (Unicode).
Проблемы с управляющими символами
Некоторые управляющие символы (например, ESC, NUL, DEL) могли вызывать проблемы при передаче через каналы с ограниченной пропускной способностью или при обработке в системах, не поддерживающих их корректную интерпретацию. Это требовало дополнительных протоколов экранирования (например, в модемах).
Устаревание
С развитием компьютерных сетей и интернета ASCII постепенно вытесняется Unicode (UTF-8), который обеспечивает обратную совместимость с ASCII, но поддерживает практически все письменные системы мира. Тем не менее, ANSI X3.17-1977 остаётся важным историческим стандартом, заложившим основы современной цифровой коммуникации.
Интересные факты
- Стандарт ANSI X3.17-1977 часто называют «ASCII-1977» или просто «ASCII», хотя сам термин ASCII относится к более широкому семейству стандартов.
- В 1977 году одновременно с ANSI X3.17 был опубликован стандарт ANSI X3.4-1977, который является практически идентичным, но имеет другую нумерацию.
- Стандарт предусматривал возможность использования 8-го бита для контроля чётности, что было важно для надёжной передачи данных по телефонным линиям.
- Некоторые символы ASCII (например, @, #, $) изначально не входили в первые версии стандарта и были добавлены только в ANSI X3.17-1977.
Источники
- ANSI X3.17-1977, American National Standard Code for Information Interchange (ASCII), 1977.
- ISO 646:1991, Information technology — ISO 7-bit coded character set for information interchange.
- Mackenzie, C. E. (1980). Coded Character Sets: History and Development. Addison-Wesley.
- Robinson, S. (1980). The ASCII Standard: A History and Analysis. IEEE Annals of the History of Computing, 2(3), 207–218.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →