Открыть сервис

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). Коды делятся на две основные группы:

  1. Управляющие символы (C0) — коды 0–31 (0x00–0x1F) и код 127 (0x7F, DEL). Они не отображаются на экране или бумаге, а используются для управления устройствами, форматирования текста и организации передачи данных.
  2. Графические символы — коды 32–126 (0x20–0x7E). Включают:
  • Пробел (код 32).
  • Цифры (0–9): коды 48–57.
  • Заглавные буквы латинского алфавита (A–Z): коды 65–90.
  • Строчные буквы латинского алфавита (a–z): коды 97–122.
  • Знаки препинания, математические символы и специальные знаки (например, !, @, #, $, %, ^, &, *, (, ), _, +, -, =, [, ], {, }, |, \, :, ;, ", ', <, >, ,, ., ?, /, ~, `).

Управляющие символы

Стандарт определяет 33 управляющих кода, каждый из которых имеет стандартное мнемоническое обозначение и назначение. Наиболее важные из них:

Код (дес.)МнемоникаНазначение
0NULПустой символ (заполнитель, не несущий информации)
1SOHНачало заголовка (Start of Heading)
2STXНачало текста (Start of Text)
3ETXКонец текста (End of Text)
4EOTКонец передачи (End of Transmission)
7BELЗвуковой сигнал (Bell)
8BSВозврат на шаг (Backspace)
9HTГоризонтальная табуляция (Horizontal Tab)
10LFПеревод строки (Line Feed)
12FFПеревод страницы (Form Feed)
13CRВозврат каретки (Carriage Return)
27ESCEscape (расширение кода, управляющая последовательность)
127DELУдаление (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 →