Как стать автором
Обновить

Алфавит… размышления на тему… Полное на персональном.

Время на прочтение4 мин
Количество просмотров569
1. Алфавит. Ассоциативные связи.

По поводу алфавита сказано так много, что я для начала процитирую работу Карла Бюлера «Теория языка»
«Алфавит — это ассоциативная цепочка (механическая последовательность), и больше ничего; но каждый выучивал и знает его. Поэтому отображения последовательностей каких-либо объектов на алфавит — это удобное соотнесение. Мы постоянно им пользуемся на практике для упорядочивания. Было бы не трудно доказать, что в системе знаков, из которых состоит естественный язык, встречается множество ассоциативных цепочек и переплетений, которые с психологической точки зрения находятся на одной ступени с алфавитной цепочкой, и которые оказывают нам такую же службу во всеобъемлющей задаче упорядочения нашего знания о предметах и сообщения этого знания другим».

Стало быть, каждому элементу алфавита можно и нужно поставить в соответствие значение (что собственно и делается сейчас ) и закрыть этот вопрос. Однако не все так просто. Логично считать алфавитом множество ассоциаций A. Если i не равно j и аi и аj: A, то AI пересеченное AJ = пустому.
Отображение T множества знаков S (объекты класса Symbol) на алфавит в языке l:L (где L множество языков) обозначим Tl. Они же (знаки) являются своего рода источником ассоциаций (через отношение Tl). Множество ассоциаций, порожденное отображением знаков Tl, обозначим Al (собственно алфавит языка l). Множество Al конечное, его можно пронумеровать, что и будет кодом ассоциации или алфавита, но будет категорически не правильно называть это кодом знака. Ассоциацию, порожденную знаком s в языке l обозначим Tl(s). Понятно, что Tl(s): Al. Несколько знаков могут порождать одну и ту же ассоциацию. Например, знак большая буква «А» и маленькая «а» порождает одну и ту же ассоциацию. Стало быть могут существовать s1:S, и s2:S такие, что Tl(s1) пересеченное с Tl(s2) не пусто. Это один момент. И второй момент то, что это ассоциация зависит от среды или для каждого языка свое множество ассоциаций. Т.е. у английской, французской и русской среды, один и тот же знак может вызывать разные ассоциации. Обычно для реализации отображения Tl достаточно построить таблицу ассоциаций (она же и есть отношение Tl), но могут применяться и более сложные алгоритмы как, например, в нотной записи, картографии или в построении электрических схем.
.
2. Группирование знаков.

Однако не для всех категорий знаков есть необходимость строить свою таблицу ассоциаций. Есть знаки, которые вызывают общие для всех языков ассоциации. Справедливо, даже более сильное утверждение: Различные ассоциации в разных языках вызывают только объекты, которые мы обычно называем буквами. Что бы подчеркнуть это свойство объединим их в группу Letter. А так как разбиение на группы уже произошло, разобьем множество знаков еще на несколько групп.
Группа цифра (группа Digital) в которую включены знаки 0,1,2,3,4,5,6,7,8 и 9 вызывающие очевидные и одинаковые ассоциации во всех современных языках.
Группа управляющих знаков (группа Command) в которую включены все знаки управления и форматирования. В современных стандартах ассоциации этой группы используются, однако не предусмотрены знаки, отображающиеся непосредственно в управляющие ассоциации. По какой-то странной логике отображение T знаков этой группы отсутствует, а для графического представления используются знаки использующие пустую ассоциацию и только в обратном отображении пустая ассоциация знак, имитирующий соответствующую управляющую ассоциацию. Т.е. знак, который отображается непосредственно в ассоциацию «перевод строки» (код 10 в стандарте KOI8) отсутствует, а знак изображающий перевод строки отображается «ассоциацией знака» с кодом 182 в стандарте KOI8.
Группа Mark включает в скобки, кавычки, запятые и прочее. Принципиальное отличие этой группы знаков, что они не принимают участие в лексическом разборе, а являются самостоятельными лексемами. Т.е. не формируют лексему, участвуя в какой-то последовательности знаков, а участвуют собственным наличием — отсутствием непосредственно в синтаксическом разборе.
Группа знаков Letter имеет еще одну особенность, которая и есть основное назначение знаков этой группы, последовательность этих знаков формирует собственную ассоциацию, которую назовем лексемой. Отделяются лексемы друг от друга знаками остальных групп, одним из которых является пробел.
После разделения знаков на группы можно соответственно разделить на соответствующие группы их ассоциации. Заметим, что для любого iи j:L, если s:Letter, то Ti(s)= Tj(s)=As. Этот факт позволяет для знаков этих групп создать единую таблицу ассоциаций для всех языков. И, кроме этого для всех групп кроме Letter, не имеет смысла свойство «регистр» (большой, маленький).

3. Ввод данных.

Все выше перечисленные группы объединяет одно спорное качество все их можно вводить с клавиатуры. Для того клавиатуру и изобретали, а так же и стандарты как кодировок знаков так и раскладок клавиатур. Подчеркнем здесь, что с клавиатуры вводятся именно знаки, а не ассоциации. И попытки подогнать в соответствие коды клавиатуры и коды ассоциаций наталкиваются на упорное сопротивление реального положения вещей. Но предусмотреть ввод всех необходимых на практике знаков, конечно, не возможно. Поэтому мы просто обязаны расширить возможности клавиатуры. Назначением клавиатуры является прямое соответствие нажимаемой клавише знаку, но поступать так всегда значило бы увеличение размеров клавиатуры до не разумных. Потому применяется метод комбинирования клавиш (одновременное нажатие нескольких клавиш) удобен для управляющей группы знаков. И тут же возникает вопрос, а не пора ли расширить стандарт знаков для функций уже ставших стандартными (копирование, удаление и т.д.) и добавить новых знаков для редактирования (новый раздел, примечание и т.д.)? Думаю вполне реально. А к этому придумать для каждого из них графическое изображение (которое зачастую уже придумано). Комбинирование знаков возможно еще специальными последовательностями. Так называемые композиционные знаки. Этот прием широко используется для смайликов (последовательность двоеточия и круглой скобки) или знака ® и.т.п. Применение для ввода знаков композиционных знаков дает широкие возможности для пользовательских знаков и смайлов.
Хорошей идеей считаю менять соответствие знаков и клавиш клавиатуры в зависимости от среды. Клавиатура Лебедева способная изменять изображение знаков на клавишах хорошо согласуется с нашими принципами.
Теги:
Хабы:
Всего голосов 10: ↑5 и ↓50
Комментарии15

Публикации