национальные языки в программном коде
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
В разговоре с издателем BHV неожиданно (действительно неожиданно ) выявились несколько интересных (действительно интересных ) вещей...
1. Во-первых, что недавно обновленные темы (как и созданные в них тексты) названы определённо неверно:
- языковая локализация в программном коде - это не локализация в принятом смысле ... это о представлении и работе с мультиязычными (UNICODE) строками в нескольких языках программирования: C, C++, Python, Go, Rust, Kotlin (при желании ещё можно добавить Java, больше не надо).
- регулярные выражения в программном коде - это не про сами регулярные выражения (про это десятки книг написано и сотни статей), а о том как использовать регулярные выражения (инструментарий) и об особенностях регулярных выражений к мультиязычным текстам (русскоязычным) ... что никому из англо-саксонских (да и всех прочих) и в голову не прийдёт описывать.
2. Во-вторых ... нужно бы привести в порядок понимание того как мультиязычность может находить себе отображение в языках программирования.
3. В-третьих, в разговоре как-то отчётливо выплыло, что к 2-м первым частям этого разговора: "Linux: языковая локализация в программном коде" + "Регулярные выражения в программном коде" отчётливо просится 3-я часть, относительно суффиксных деревьев, что уже прорабатывалось в старой теме этого форума: суффиксные деревья и поиск в строке - они, эти 3 части, идеологически родственные
1. Во-первых, что недавно обновленные темы (как и созданные в них тексты) названы определённо неверно:
- языковая локализация в программном коде - это не локализация в принятом смысле ... это о представлении и работе с мультиязычными (UNICODE) строками в нескольких языках программирования: C, C++, Python, Go, Rust, Kotlin (при желании ещё можно добавить Java, больше не надо).
- регулярные выражения в программном коде - это не про сами регулярные выражения (про это десятки книг написано и сотни статей), а о том как использовать регулярные выражения (инструментарий) и об особенностях регулярных выражений к мультиязычным текстам (русскоязычным) ... что никому из англо-саксонских (да и всех прочих) и в голову не прийдёт описывать.
2. Во-вторых ... нужно бы привести в порядок понимание того как мультиязычность может находить себе отображение в языках программирования.
3. В-третьих, в разговоре как-то отчётливо выплыло, что к 2-м первым частям этого разговора: "Linux: языковая локализация в программном коде" + "Регулярные выражения в программном коде" отчётливо просится 3-я часть, относительно суффиксных деревьев, что уже прорабатывалось в старой теме этого форума: суффиксные деревья и поиск в строке - они, эти 3 части, идеологически родственные
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
Вот с этого и начнём...
Применение мультиязычности в языках программирования может иметь несколько слоёв:
1. Использование языков программирования, в синтаксисе которого ключевые слова допускаются (или предусмотрены только) на национальных языках.
2. Присвоение переменным, обектам программного кода имён в национальных языках.
3. Создание, хранение, ввод и вывод текстовых литералов (строк) на национальных языках. Представление текстовых литералов может реализовываться либо "доморощенными" способами (Pascal, ранний C), или использованием UNICODE (в той или иной кодировке: UTF-8, UTF-16, UTF-32).
4. Манипуляции с содержимым текстовых строк на национальных языках: поиск, замена, перестановки и др.
Это всё совсем не одно и то же! В каком-то языке программирования, или его инструментарием (библиотеки и др.), могут реализовываться одни пункты, и не обеспечиваться другие.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
Это не совсем такое уж пустое начинание...
1. Институтом кибернетики Академии наук Украинской ССР, под рук. акад. Глушкова разработаны вычислительные машины МИР и МИР-2 (МИР - это не притензии на Universum, а Машина Инженерных Расчётов), работающие по программам на языке Алмир/Аналитик, 1968г..
Там оператор цикла мог выглядеть вот так:
Код: Выделить всё
ДЛЯ Ж=1 ШАГ 0.3 ДО π ВЫПОЛНИТЬ ...
Пример программы «Здравствуй, мир!»:
Код: Выделить всё
ПРОЦ СТАРТ();
ВЫВОД: "ЗДРАВСТВУЙ, МИР!";
КНЦ;
Вот интересная статья-обзор на этот счёт: Разработка языков программирования и компиляторов в СССР:
- Язык Рефал, 1966 (язык манипулирования символьными объектами, такими как текстами, формулами, программами) - единственный отечественный язык программирования, получивший общемировую известность.
- Язык программирования Алмо
- Система программирования Сигма (Символьный Генератор и Макроассемблер)
- Универсальный машинно-ориентированный язык программирования Эпсилон (Элементарный Преобразователь СИмвоЛьнОй иНформации).
- Система программирования Бета: Изначально этот язык был назван — автокод Эльбрус, затем был переименован в Эль-76.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
Это не пустое начинание, поскольку акад. Ершов ещё в начале 80-х предполагал лёгклсть изучения языка Рапира для достижения всеобщей компьютерной грамотности (в 1980-м году!)
Но!
Русскоязычный синтаксис ничего не добавляет к семантике языка...
Язык программирования должен объединять разноязыких разработчиков, а не разъединять ... по какому-то ни было признаку.
И уже к началу-середине 80-х годов это было понято, и движняк именно в этом направлении прекратился...
Поэтому этот, 1-й слой, поддержки национальных языков мы, на этом, разобрали и закончили.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
А вот эти пункты уже изложены в:Olej писал(а): ↑19 янв 2023, 18:032. Присвоение переменным, обектам программного кода имён в национальных языках.
3. Создание, хранение, ввод и вывод текстовых литералов (строк) на национальных языках. Представление текстовых литералов может реализовываться либо "доморощенными" способами (Pascal, ранний C), или использованием UNICODE (в той или иной кодировке: UTF-8, UTF-16, UTF-32).
4. Манипуляции с содержимым текстовых строк на национальных языках: поиск, замена, перестановки и др.
Часть 1: "Linux: языковая локализация в программном коде"
Часть 2: Регулярные выражения в программном коде
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
Часть 3: Суффиксные деревьяOlej писал(а): ↑19 янв 2023, 19:19Часть 1: Linux: языковая локализация в программном коде
Часть 2: Регулярные выражения в программном коде
Вот эту 3-ю часть и отрабатываем: суффиксные деревья и поиск в строке
И это будет 3-я часть.
А вот эта часть станет: Часть 0: Предисловие
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
Отвлечёмся на время от конкретностей предмета...
Копирую сюда свои реплики разговора (чужие я не имю права)...
Первое, есть тема безусловно "горячая" - это языковая локализация в программном коде ... ну и + к ней, возможно, регулярные выражения локализованные. Это то, с чем СТАЛИ обращаться с вопросами, потому что а). этого никто не понимает (не интересовало раньше) + б). в связи с изоляцией и импортозамещением - припекло.
Меня меньше интересует СЕМАНТИКА (синтаксис, логика... - об этом множественно написано), меня интересуует то, о чём не пишут: 1). КАК использовать регулярные выражения в каждом из 6-ти ЯП + б). КАК ПОВЕДУТ себя регулярные выражения в мультиязычных (UNICODE) текстах - ни одному автору из англосаксов не прийдёт в голову про такое писать
Мы с вами, наверное, говорим о разных вещах... Я имею в виду про то КАК можно представлять мультиязычные строки-тексты в коде 6-ти языков программирования и ЧТО с ними там можно делать. Это совершенно не ординарные вещи. ... С традиционным термином "локализация в операционной системе" это имеет слабую связь.
это и есть "сквозной проект": как работать с РУССКОЯЗЫЧНЫМИ текстами в программном коде + как быть с регулярными выражениями над такими текстами
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
Вот то, что готово на эту дату - 01.02.2023 - редакция №30, 82 стр.
Буду ли активно дорабатывать (расширять ... хотя есть и понятно куда) не знаю.
P.S. Если это кому-то будет интересным, и будут замечания и пожелания - пишите сюда.
- Вложения
-
- natiolang_30.odt
- (901.27 КБ) 43 скачивания
-
- NatioLang.30.tgz
- (122.21 КБ) 44 скачивания
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
национальные языки в программном коде
- Вложения
-
- natiolang_31.pdf
- (759.93 КБ) 41 скачивание
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя