Особенности национального языка в программном коде [Олег Иванович Цилюрик] (pdf) читать постранично, страница - 3

-  Особенности национального языка в программном коде  687 Кб, 82с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Олег Иванович Цилюрик

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

имеет несколько аспектов,
«многослойный», как минимум это (а может и больше):
1. Использование таких языков программирования, в синтаксисе которого ключевые и
зарезервированные слова допускаются (или предусмотрены только в таком виде) на
национальном языке.
2. Допускает ли язык программирования присваивание переменным (и любым другим объектам
программного кода) имён, записываемых на национальных языках.
3. Как производится представление, создание, хранение и ввод/вывод текстовых литералов
(строчных констант) на национальных языках. Представление текстовых литералов может
реализовываться либо «доморощенными» способами (поток байт: Pascal, ранний C), или
использованием Unicode (в той или иной кодировке: UTF-8, UTF-16, UTF-32) — это не имеет
значения.
4. Как производятся манипуляции с содержимым текстовых строк на национальных языках:
поиск, замена, перестановки и другие операции. Может показаться, что это то же самое что и
предыдущий пункт, но, как мы увидим вскоре, это принципиально разные вещи.
Все эти, а возможно, и другие стороны вопроса — это всё совсем не одно и то же! В любом языке
программирования, или его среде, инструментарии (библиотеки, пакеты, модули и др.), могут
реализовываться одни пункты, и вовсе не обеспечиваться другие.
Чтобы больше не обращаться к этому, остановимся очень коротко на п.1 этого перечисления. Это
вовсе не курьёз и совсем не такое пустое начинание: на раннем этапе развития того, что позже
стали обозначать как IT, в СССР разрабатывался целый ряд языков программирования с
русскоязычным синтаксисом ключевых слов-операторов. Причём таких языков программирования,
фундаментальные идеи которых потом повлияли на всё развития языков программирования в
последующие 40-50 лет. Поэтому стоило бы оглянуться, и коротко их хотя бы назвать:


Язык Рефал. Первая версия Рефала была создана в 1966 году Валентином Турчиным. Это
единственный язык из этого перечисления получивший мировую известность.



1968г. и далее: Институтом кибернетики Академии наук Украинской ССР, под рук. акад.

Глушкова В.М. разработаны и производились вычислительные машины МИР и МИР-2 (МИР
- это не претензии на Universe, а просто Машина Инженерных Расчётов), работающие по
программам на языке Алмир/Аналитик. Там оператор цикла мог выглядеть как-то так:
ДЛЯ Ж=1 ШАГ 0.3 ДО π ВЫПОЛНИТЬ ...



Новосибирск, 1970 - 1981г.г., под руководством акад. Ершов А.П. создаётся обучающая
система «Школьница» и языка Рапира, для там же созданного компьютера «Агат».
Пример программы «Здравствуй, мир!»:

ПРОЦ СТАРТ();
ВЫВОД: "ЗДРАВСТВУЙ, МИР!";
КНЦ;

Акад. Ершов А.П ещё в начале 80-х предполагал использовать лёгкость изучения языка
Рапира для достижения всеобщей компьютерной грамотности (в 1980-м году!).


Система программирования Бета: Изначально этот язык был назван — автокод Эльбрус,
затем был переименован в Эль-76.



Язык Сигма — название неожиданно очень удачно стало соответствовать сути
разработанного языка, которую можно описать как «Символьный Генератор и
Макроассемблер». Всего в истории языка Сигма было три его реализации: на М-20, на
БЭСМ-б и на самом языке Сигма.

И даже это ещё далеко не все...
Но русскоязычный синтаксис языка ничего принципиально не добавляет к семантике языка… На
ранних этапах становления понимания семантики языков программирования это было вполне
естественно. Язык программирования должен объединять разноязыких разработчиков, а не
разъединять по какому-то ни было признаку. И уже к середине 80-х годов это было понято, и
движение именно в этом направлении прекратилось… Так на этом мы и закончим краткий экскурс в
1-й из перечисленных аспектом поддержки национальных языков в программном коде. И к нему
далее не станем обращаться…
Краткое замечание о соотношении пунктов 2 и 3 перечислений: константное представление и
манипулирование содержимым строчных данных в коде. До тех пор, пока понятия символ и байт в
текстовом представлении были эквивалентными, понятия хранения и оперирования с такими
строками были тождественными. Но как только представление каждого символа в Unicode стало
возможным представлять 1, 2, 3, 4 байтами (а потенциально до 6) — эта тождественность
разрушается: если мы попытаемся заменить 3-байтовый символ в строке на 1-байтовый, то мы тут
же разрушим всю структуру текстовой строки (образуются зависшие «остатки» в виде 2-х байт). И
для корректного выполнения разнообразных манипуляций с контекстом строки нужно находить
адекватные методы. Об этом мы подробно станем говорить ниже...

Литература и сетевые ресурсы
1. Разработка языков программирования и компиляторов в СССР
https://habr.com/ru/company/ua-hosting/blog/273665/
2. Виктор Михайлович Глушков. Опережая время. 16 марта 2017.
https://habr.com/ru/company/ua-hosting/blog/370259/
3. Ершов, Андрей Петрович
https://ru.wikipedia.org/wiki/Ершов,_Андрей_Петрович

Часть 1. Локализация в Linux
Воспользуемся