❗ Вебсайт в стадии бета-тестирования. Возможны ошибки.

Регистр глифа

К сведению

Регистр глифа основан на свойствах регистра символа, определённых в стандарте Юникода.

Регистр (Case) — два глифа одного абстрактного символа бикамеральной письменности.

Бикамеральная письменность — алфавит с двумя вариантами написания букв.

В бикамеральной (двухпалатной) письменности различают глифы нижнего и верхнего регистров. В тексте регистр применяют смешанным образом в соответствии с грамматикой письменности или правилами формального языка (например, программирования).

Даже в бикамеральной письменности в некоторых контекстах используют только один регистр. Например, инженерные чертежи принято обозначать только в верхнем регистре. В ограниченном пространстве чертежа верхний регистр легче различать чем нижний регистр. В математике глифы верхнего и нижнего регистра обозначают разные математические объекты.

Регистры глифа

Варианты глифов одного символа в разных регистрах.

Символ верхнего регистра (Uppercase) — любой символ Юникода, для которого в свойстве Case property явно указано одно из значений: Uppercase, Uppercase_Mapping, Simple_Uppercase_Mapping.

Символ нижнего регистра (Lowercase) — любой символ Юникода, для которого в свойстве Case property явно указано одно из значений: Lowercase, Lowercase_Mapping, Simple_Lowercase_Mapping.

Прописная буква, капитель, маюскул (Uppercase, Capital Letter) — буква верхнего регистра.

Капитализация (Capitalisation) — способ написания слов, при котором первый глиф пишут в верхнем регистре, а остальные — в нижнем регистре.

Например, капитализацию употребляют в начале предложения или для обозначения имён собственных.

Заголовочный регистр (Titlecase) — то же, что капитализация. Соглашение записывать в верхнем регистре первую букву в наименованиях, заголовках и других согласованных случаях.

Строчная буква, минускул (Lowercase) — буква нижнего регистра.

Капитель (Small capitals) — глиф верхнего регистра, но высотой и насыщенностью как глиф нижнего регистра.

Сопоставление регистров (Case Mapping) — сопоставление форм глифов нижнего и верхнего регистра.

Некоторые глифы верхнего и нижнего регистров имеют одинаковую форму. Например, С и с, П и п, Н и н. У других форма в разных регистрах отлична. Например, А и а, Б и б, Е и е.

Игнорирование регистра (Case-Ignorable) — способ не учитывать регистр глифа.

Внутренний верхний регистр (Inner Caps) — формат со смешанным регистром, при котором глиф верхнего регистра стоит не на первой позиции, а в середине слова.

Например, кельтские фамилии с префиксом Мак (Mc): МакЛарен, McLaren.

Свёртка регистра (Case Folding) — приведение строк к определённому регистру для облегчения поиска и сортировки текста.

Символы верхнего и нижнего регистров закодированы отдельно. При сортировке, поиске или программной обработке это требует отдельных операций. Свёртка регистра полезна там, где нет необходимости в различении регистра. И это очень распространённая практика компьютерных приложений. Многие языки программирования высокого уровня предоставляют простые методы преобразования регистра. Учитывать ли различия регистра, зависит от контекста. Например, пароли пользователя чувствительные к регистру. Это обеспечивает большее разнообразие. Напротив, при поиске по ключевым словам регистр игнорируют.

Стили использования регистров

Стиль использования глифов верхнего и нижнего регистров зависит от ситуации. В гипертексте различают следующие стили применения регистров:

  • стиль регистра предложения;
  • заголовочный стиль регистра;
  • начальный стиль регистра;
  • стиль верхнего регистра (капитализация);
  • стиль регистра капители (капительный стиль);
  • стиль нижнего регистра;
  • стиль внутреннего верхнего регистра.

Стиль регистра предложения (Sentence case style) — смешанный стиль, в котором первое слово предложения пишут с заглавной буквы, а остальные слова со строчной буквы.

На примере панграммы: «Съешь же ещё этих мягких французских булок да выпей чаю».

Заголовочный стиль регистра (Titlecase style, Capital case style, Headline style) — стиль, в котором все основные части предложения (подлежащее, сказуемое, дополнение) пишут с заглавной буквы, а все мелкие части (союзы, предлоги, частицы, местоимения, наречия) — в нижнем регистре.

Правила капитализации в заголовочном стиле обычно сформулированы в руководстве по стилю организации. Универсальных правил не существует. На примере панграммы: «Съешь же ещё этих Мягких Французских Булок да Выпей Чаю».

Начальный стиль регистра (Start case style) — стиль, в котором все слова предложения пишут с заглавной буквы.

Упрощённый вариант заголовочного стиля регистра, в котором нет исключений для каких-либо частей речи. На примере панграммы: «Съешь Же Ещё Этих Мягких Французских Булок Да Выпей Чаю».

Стиль верхнего регистра, капитализация (Uppercase style) — стиль, в котором использованы только глифы верхнего регистра.

Стиль верхнего регистра (капитализацию) используют для написания заголовков глав и разделов, названий публикаций, предупреждений (если выноски отсутствуют) и выделения важных слов. Капитализацию применяют в случае, если по каким-то причинам невозможно применить другие способы начертания, в первую очередь насыщенность.

Длинные фрагменты текста, написанные только заглавными буквами, трудно читать из-за отсутствия выносных и нисходящих элементов глифа. На примере панграммы: «СЪЕШЬ ЖЕ ЕЩЁ ЭТИХ МЯГКИХ ФРАНЦУЗСКИХ БУЛОК ДА ВЫПЕЙ ЧАЮ».

Стиль нижнего регистра (Lowercase style) — стиль, в котором использованы только глифы нижнего регистра.

На примере панграммы: «съешь же ещё этих мягких французских булок да выпей чаю».

Стиль регистра капители (Small caps style) — стиль, в котором в качестве строчных букв применена капитель (малые прописные).

Строки выглядят очень похожими на стиль верхнего регистра. Однако размер букв соответствует строчным буквам. В современной кириллице большинство строчных букв прямого начертания полностью повторяет штрихи заглавных. Поэтому в русской типографике капитель применяют крайне редко. Капитель применяют в аббревиатурах (например, HTML), для набора римских цифр (например, XXI век).

В языке разметки CSS можно задать начертание капителью и браузер синтезирует её. Например:

font-variant: small-caps;
    либо
font-feature-settings: "smcp";

На примере панграммы: «Съешь же ещё этих мягких французских булок да выпей чаю».

Стиль внутреннего верхнего регистра (Inner case) — стиль, в котором пропущены пробелы, а все слова записаны с заглавной буквы. Аналогично начальному стилю регистра, но без пробелов.

На примере панграммы: «СъешьЖеЕщёЭтихМягкихФранцузскихБулокДаВыпейЧаю».

Регистр в языках программирования

Грамматика языков программирования отлична от грамматики естественного языка. Правила регистра глифов в языке программирование связаны в обработкой кода, а не с отображением. Правила формулируют по принципу «необходимо и достаточно», никаких излишеств, что позволяет довольно долго поддерживать унаследованный программный код. Например, количество видов используемых пробелов сокращено до минимума: простой пробел и табуляция как последовательность простых пробелов.

Использовать составные идентификаторы рекомендуют многие руководства стилем программирования: Mesa, Pascal, Modula, Java и Microsoft .NET. В руководствах обычно уточняют какой вариант следует применять для определённых типов сущностей: переменных, полей записей, методов, процедур, функций, подпрограмм, типов. Инструменты статистического анализа поддерживают подобные правила при проверке исходного кода.

Историческая справка

Применение смешанного регистра в программировании возникло ещё на заре компьютерной эры. На конференции в 1954 году компания IBM представила доклад о системе Speedcoding, которая в материалах упоминалась как SpeedCo. В 1965 году в своей статье Кристофер Стрейчи (Christopher Strachey) пишет об идентификаторах, записанных с заглавными буквами в середине слова: NextCh, WriteSymbol и другие. Вероятно, подобный стиль записи пришёл из языка Combined Programming Language (CPL), предшественника языка программирования Си (C).

С проблемой многословных идентификаторов программисты столкнулись как только появились языки программирования высокого уровня. В языках Lisp (1958), COBOL (1959) эту проблему решали, позволяя использовать дефис между словами: END-OF-FILE, CHAR-TABLE. Выработанные в те годы соглашения действуют и сегодня. Например, в наименованиях программ, вызываемых посредством командной строки Unix: pybind-dev, pyinstaller-hooks-contrib, pymatgen-test-files.

В конце 1960-х годов благодаря широкому распространению набора символов ASCII появилась возможность применения строчных букв и символа подчёркивания. До этого перфокарты использовали лишь заглавные буквы. После этого некоторые языки программирования перешли к стилю подчёркивания в качестве разделителя слов идентификаторов. В частности наименования типа end_of_file до сих пор превалируют в библиотеках языка С, а также в более поздних языках, на которые повлиял С: языки Perl, Python.

Однако не все программисты перешли к стилю подчёркивания. Примерно в 1978 году в компании Xerox PARC разработали язык программирования Mesa. Руководство программиста к этому языку включало правила кодирования библиотек Mesa. В этих правилах описан стиль внутреннего внешнего регистра. Позже эти правила стали соблюдать и в операционной системе Alto. Никлаус Вирт (Niklaus Wirth) тесно сотрудничал с Xerox PARC и перенял многие правила, внедрив их в свои языки программирования Pascal и Modula.

В языке Smalltalk, разработанном для операционной системы Alto, также использовали стиль внутреннего верхнего регистра вместо подчёркивания. Этот язык стал популярен в 1980-х годах и правила наименования идентификаторов стали широко известны.

В последние тридцать лет стиль внутреннего верхнего регистра (Inner case) породил множество вариаций:

  • camelBack notation, CamelCaps;
  • camel case, CamelCase;
  • CapitalizedWords, CapWords (стиль верхнего регистра в Python);
  • compoundNames;
  • Embedded caps, embedded capitals;
  • HumpBack, hump-back notation;
  • InterCaps, intercapping, Internal Capitalization;
  • medial capitals (этот вариант рекомендует словарь Oxford English Dictionary);
  • mixedCase (стиль нижнего регистра в Python);
  • PascalCase (в языке программирования Pascal);
  • Smalltalk case (в языке логического программирования Smalltalk);
  • WikiWord, WikiCase (для разметки в приложениях вики).

В области Интернета первое упоминание о применении стиля внутреннего верхнего регистра (Inner case) появилось в сети Usenet в апреле 1990 года в группе alt.folklore.computers.

Применение стиля внутреннего верхнего регистра

Различные варианты стиля внутреннего верхнего регистра широко распространены в технической документации и языках программирования. В современной инженерной практике закрепились следующие варианты:

  • «Верблюжий» стиль верхнего регистра (Camelcase style), в котором первый глиф представлен в верхнем регистре. Стиль часто называют «Паскаль-регистр» (Pascal case), в честь языка программирования Pascal, который первым начал применять этот стиль.
  • «Верблюжий» стиль нижнего регистра, в котором первый глиф представлен в нижнем регистре. Такой способ ещё называют «дромадерным» (Dromedary case). Подобное написание очень популярно в наименовании электронных устройств, программных продуктов и сервисов. Например, iPod, eBay, eMail, eCommerce.
  • «Змеиный» стиль (Snake case), в котором слова разделены символами подчёркивания. Обычно буквы имеют одинаковый регистр верхний или нижний.
  • «Колдобины» (Pothole case) — стиль именования переменных в языке программирования Python. Это разновидность «змеиного» стиля, в котором вначале идут слова верхнего регистра, а затем через подчёркивание слова нижнего регистра. Существует вариация — стиль «кричащей змеи» (SCREAMING_SNAKE_CASE, hazard case), в котором все буквы в словах между знаками подчёркивания верхнего регистра.
  • Стиль «кебаба» (Kebab case, Spinal case, Param case, Lisp case), в котором слова нижнего регистра разделены дефисами. Например, этот стиль применяют в языке CSS для наименований свойств компонентов гипертекста.
  • Стиль «поезда», «паровоз» (Train case, TRAIN-CASE) — разновидность стиля «кебаба», в котором каждом слово пишут в верхнем регистре.
  • Среднеточечный стиль (Middot case) — разновидность стиля «кебаба», в котором слова разделены не дефисами, а средней точкой (· U+00B7, ·). Этот стиль доступен многим языкам программирования, поддерживающим Юникод. В отличие от дефиса при использовании точки не возникают конфликты с зарезервированными обозначениями операторов.

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

  • пишут без пробелов, но вместо пробелов используют знак подчёркивания («змеиный стиль»);
  • все слова в нижнем регистре, но с заглавной буквы («верблюжий» стиль верхнего регистра).

«Верблюжий» стиль верхнего регистра используют многие приложения вики. Как правило, они автоматически преобразуют подобные строки в гиперссылки на другие страницы вики. Это соглашение использовало оригинальное приложение WikiWikiWeb, откуда его унаследовали другие приложения вики.

Оформление данных в формате XML требует явных правил использования регистра в атрибутах XML.

Большинство операционных систем при обработке файлов в командной строке не допускают пробелов в именах этих файлов. Для вызова подобных файлов используют либо экранирование пробелов, либо заключение наименования файла в кавычки. Не очень удобно. Проще использовать «Верблюжий» стиль верхнего регистра при формировании наименования файла.

Ещё одной областью применения «Верблюжий» стиль верхнего регистра служат хэштеги для обеспечения читабельности. Например, хэштег #вопросыВебПрограммирования читать гораздо легче, чем #вопросывебпрограммирования.