Обсуждение:Уникод

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску
   Народ! Вы же вроде бы тут русские патриоты (или даже как мне сказали - националисты), следовательно просто обязаны готовить русское возрождение вообще, и в области вычислительной техники - в частноти. Ну и где это? Вот в данной конкретной области: статья практически ни о чем. Да, есть сетования "о нерусскости" оного уникода, но это практически всё.
  Кто этим вопросом занимается, и занимается ли вообще кто ни будь? Или хотя бы думает на эту тему? 

  К этому делу (как впрочем и к любому другому) надо подходить комплексно. Нужна не только кодировка, но и аппаратная, платформа, и ПО, и главное то, что ак.Ершов называл "лексиконом" (см. например http://rkka21.ru/ershov-lexicon.htm)...
  Всего в этой краткой записке не охватить. Замечу только, что необходимо ввести в обиход и всемерно проталкивать и пропагандировать понятие "машины Лебедева" как противоположность "машины фон-Неймана". (Более того - упорно отстаивать наш приоритет в этом классе машин.) 
  Машина фон-неймана - результат тенденции максимально упростить аппаратуру (что было совершенно необходимо на начальных этапах развития ВТ), а всю сложность и вообще смысл решаемой задачи переложить на ПО. Так: ОЗУ никак не различает - что хранится в данном конкретном слове - число, буквы или команда; процессор тупо выполняет то, на что указывает его счетчик команд, нимало не интересуясь результатом - за всё отвечает программный код. Уровень системы команд максимально низок, семантический разрыв между ним и уровнем языков, на которых пишутся программы, перекрывается с помощью сложного и громоздкого системного ПО - трансляторов и операционных систем.  
  Для машины Лебедева - противоположная тенденция: повышение семантического уровня системы команд и аппаратно реализованных примитивов - ценою усложнения аппаратуры. (Что чем дальше - тем больше не проблема. Поэтому за машинами Лебедева - будущее. И оно должно быть нашим!) В частности - самоопределяемость данных. (Т.е. ОЗУ "знает" что именно хранит, а процессор соответственно знает что с этим делать (и главное - как). Причем на трёх уровнях:  для элементарных значений - теги, для агрегатов данных - дескрипторы, для сделанных из них "объектов" - классы.) Как результат - аппаратная реализация примитивов языков высокого уровня, сокращение семантического разрыва, упрощение как системного так и прикладного ПО... Но главное - повышение надёжности программирования. Потому что этап компьютеризации, известный как "бум персональных ЭВМ" должен был давным давно закочиться (и соответственно начаться следующий), а он всё продолжается и продолжается. Искуственно. А вот на этом следующем к машинам совершенно другие требования: если для персоналки, которая суть - гипертрофированный дисплей, ничего особо не надо кроме сырой производительности, то там - для управления энергонасыщенной техникой требуется надежность ПО и живучесть железа...
  Пример машины Лебедева - МВК Эльбрус, разработанный к середине семидесятых (!) и до сих пор являющейся машиной будущего. (Не забываем: пентиум содран с внутренностей третьего Эльбруса - украл и вывез Пентковский.) И его прямые  предшественники Мир и Мир-2. А так же например инициативная разработка - система Марс ориентированная на Модулу-2. (Ну и наверно можно найти еще много чего, о чем лично я и не слышал. Некая система Самсон, например.) 
  Но вернёмся к кодировкам. 

 Необходима статья про вполне себе русскую кодировку под скромным названием УПП. (Всего лишь абревиатура от слов "устройство подготовки перфокарт".) Которая семибитная, но у неё вполне функционально и шести-битное подмножество. И даже четырёхбитное! Требуются соображения (и/или сведения), почему эту хорошо продуманную вещь фактически бросили (в т.ч. масса кодовых позиций так и осталась незаполненной), и взялись что-то ваять на базе ASCII. 
  К статье про ASCII  конешно полезно было бы добавить описание сделанных на её основе группы кодировок КОИ, и писишных - досовской 866 и виндовой 1251... 
  Но это тривиально.  
  А надо проанализировать саму кодировку ASCII, чего до сиих пор почему-то никто не делал. (По крайней мере мне - не попадалось.) А между тем невооруженным глазом видно, что для хранения и обработки текстов (и других данных) в вычислительной технике она годится не очень. Что она к этому всего лишь приспособлена. (А вот наша УПП, да и идиотская ЕБСДИК - именно для этого и конструировались.) А эта заточена совсем для другого - для передачи текстов, причем в телетайпетной сети с автоматической коммутацией. Тоесть похоже что амеры спёрли её у фашистов (так же как ракетную технику, и наверно еще многое другое) - именно у них еще до войны якобы была именно такая сеть, по функциональности сопоставимая с нынешним интернетом. Если конешно выкинуть оттуда рекламу, котиков и мегатонны чепухи, оставить только важное и достоверное. (Вот как раз трафик и сократится порядков на пять-шесть. И его вполне потянет телетайп со скоростью бод в семьдесят пять.) 
  А надо всего лишь внимательно рассмотреть что за команды там до пробела; что именно они делают - станет понятно для чего нужны. Но надо привести их русские обозначения (а не буржуйские) - вот например как в ГОСТ 27465-87, а можно даже просто это место оттуда процитировать.
 Далее - рассмотреть собственно уникод. Причем со всех сторон. И как он кодируется восьмибитными байтами (то что utf-8, кстати, придумано неплохо - например вполне совместимо с принципами работы со строками в языке Си), и то как организовано пространство символов (гиперизбыточное) и то как там символы размещены, и какие (вот это - безобразно). И откуда у всего этого ноги растут. (По-моему мелкомягкие сперва решили выделить под символ два байта: в один засунуть сам символ, а во второй - указание в какой он кодировке. А подавляющее большинство национальных кодировок отличаются всего-то несколькими символами.) 
 Вспомнить про "суммарный алфавит" типографий СССР - всего-то 400 символов и это абсолютно всё что надо для 90 языков. (Подумать - нельзя ли было расширить УПП в сторону этого суммарного алфавита.) 
  Ну и наконец решить, а что же нам на самом деле надо? Отталкиваясь от вопроса "зачем?". 
  Думаю, что "осчастливить" абсолютно всех, и/или запихнуть абсолютно всё (как это пытаются сделать с уникодом) нам явно не надо. Особенно так безобразно и безсистемно. Т.е. нам нужно средство для обмена (и хранения) информации, а не "обеспечения высококачественной типографики". 
  Впрочем, именно из этого исходили разработчики ISO-8859, но то, что у них получилось - безобразно: пытались всем угодить. Десять (!) страниц для латинского алфавита. А он должен уложиться в одну - символов в 50 (максимум 60). Думаю, что нам надо чтобы код символа обозначал не "картинку" как сейчас а смысл этой картинки. Ну обозначаем же мы букву "А" любого шрифта одним и тем же кодом! Так же и одним кодом следует обозначить буквы, обозначающие в разных языках один и тот же звук (например "Ж") даже если они пишутся по-разному. (Конкретную картинку нарисует драйвер.) Но без фанатизма. 
   Была же во времена Алгола-60 такая фича - что каждое ключевое слово языка вовсе не из букв состоит, а само по себе "буква" - символ расширенного алфавита с собственным отдельным кодом. А изображается - как кому нравится - хоть "begin" "end", хоть "начало" "конец", хоть "{" "}" - текст программы от этого не меняется. (Чтобы отличить - выдавались другим цветом или шрифтом, а на письме - подчеркивались.) Но заглохло это, упёршись в тогдашние кодировки. 
  Тоесть предлагается действовать по туристскому принципу: брать с собою в поход не то, что может пригодиться, а то и только то без чего нельзя обойтись. 
  Думаю, что если каждому алфавиту, имеющему заглавные и строчные буквы выделять по две страницы, а не имеющему - по одной, то страниц пятьдесят на все основные алфавиты хватит. Включая так же и слоговые письменности. (Но не ероглифы - для них нужен другой принцип.) И в результате абсолютно всё, без чего нельзя обойтись, вполне уложится в пространство 2^12. Тоесть может быть равномерно закодировано двенадцатибитным байтом. И вообще - в машине Лебедева предполагается делить машинные слова не на восьмибитные слоги (ибо малополезны) а на как минимум двенадцатибитные. Или отказаться от такого деления вообще - плохо согласуется с самоопределяемостью...
  Народ, извиняюсь - зело спать хочется. Более подробно можно глянуть в http://samlib.ru/u/uirh/index_3.shtml - про деление на байты отдельная статья, про кодировки символов - тоже. Про командную страницу ASCII - в последней главе книги о Фокале.  
   uirh  4:31, 3.3.21 (MSK)
  • Да то же самое, что и Вам помешало прочитать эту мою "программную записку", понять о чем она и осознать, что ни одной статьёй, ни даже циклом статей тут не отделаешся. Что тут сперва крепко думать надо.

    Вообще-то я спросил - думает ли уже кто на эту тему (и если да - то чего надумал), а так же привёл свои соображения.
    Ну и?
    uirh 10:00, 5.3.2021 (MSK)