дневник Яос
Re: дневник Яос
Переводится 9 сборок. Единственное, что уже переведённые файлы переводятся обратно в английский вариант. Видимо, стоит попробовать завести отдельную ветку с русскоязычными ключевыми словами и посмотреть, как оно пойдёт.
https://gitlab.com/budden/ja-o-s/-/comm ... 80ad3aca6b
https://gitlab.com/budden/ja-o-s/-/comm ... 80ad3aca6b
Re: дневник Яос
Пытался внедрить директивы {перекрыта}, но они не вставляются в неактивные блоки препроцессора, поэтому слияние конфигураций ломается. Видимо, придётся часть этой работы проделать вручную, поставив сборку с минимальным числом пакетов. Также, наверное, надо включить предупреждение об отсутствии модификатора {перекрыта/override} независимо от языка и проблема всплывёт как можно раньше.
Re: дневник Яос
Впервые выложил исходники с переведёнными ключевыми словами. Заодно добавил модификатор {перекрыта} для унаследованных процедур.
Где-то тут можно смотреть:
https://gitlab.com/budden/ja-o-s/-/blob ... Kernel.Mod
Индекс кирилличности в этой ветке (пока она не основная) - 15.6%
Где-то тут можно смотреть:
https://gitlab.com/budden/ja-o-s/-/blob ... Kernel.Mod
Индекс кирилличности в этой ветке (пока она не основная) - 15.6%
Re: дневник Яос
Начал перевод модулей компилятора на базе словарей. Процесс, надо сказать, весьма спотыкательный.
Результат такой:
https://gitlab.com/budden/ja-o-s/-/blob ... canner.Mod - индекс кирилличности 32%.
Результат такой:
https://gitlab.com/budden/ja-o-s/-/blob ... canner.Mod - индекс кирилличности 32%.
Re: дневник Яос
Исправил сегодня 2-3 ошибки, слил две ветки разработки, из двух аналогов Release.Mod и СборщикВыпускаЯОС.Mod оставил только русскоязычный. Мостики за нами постепенно подгорают...
Похоже, что сломался отладчик - его не хватало. Придётся чинить. Также переводчик всё ещё не идеален - пришлось исправлять 24 места вручную. Одну из проблем закрыл, но ясно, что ещё что-то придётся править.
Индекс кирилличности в русскоязычной ветке - 15.92%. Поскольку уже очевидно, что за обычный день он будет, как правило, расти менее, чем на 0.1%, буду его писать с точностью до 0.01%.
МихалНик, если вдруг Вы читаете эту тему, ключевые слова я уже перевёл, а перевод внутренних идентификаторов очевидно, затянется на несколько месяцев. Прогресс такого долго идущего процесса всё равно должен выражаться какой-то числовой мерой, в противном случае ситуация является совершенно неуправляемой. Поэтому идея о ненужности индексов вообще не найдёт моего понимания. Мой индекс, конечно, не идеален, но это лучше, чем ничего. Если у Вас есть предложения по более хорошему индексу, чем мой, я готов мерять и Ваш тоже (особенно, если Вы напишете программку, которая его выдаёт, запускаемую из командной строки, и передадите мне исходники).
Похоже, что сломался отладчик - его не хватало. Придётся чинить. Также переводчик всё ещё не идеален - пришлось исправлять 24 места вручную. Одну из проблем закрыл, но ясно, что ещё что-то придётся править.
Индекс кирилличности в русскоязычной ветке - 15.92%. Поскольку уже очевидно, что за обычный день он будет, как правило, расти менее, чем на 0.1%, буду его писать с точностью до 0.01%.
МихалНик, если вдруг Вы читаете эту тему, ключевые слова я уже перевёл, а перевод внутренних идентификаторов очевидно, затянется на несколько месяцев. Прогресс такого долго идущего процесса всё равно должен выражаться какой-то числовой мерой, в противном случае ситуация является совершенно неуправляемой. Поэтому идея о ненужности индексов вообще не найдёт моего понимания. Мой индекс, конечно, не идеален, но это лучше, чем ничего. Если у Вас есть предложения по более хорошему индексу, чем мой, я готов мерять и Ваш тоже (особенно, если Вы напишете программку, которая его выдаёт, запускаемую из командной строки, и передадите мне исходники).
Re: дневник Яос
Встроенные функции не осилил пока - переведены только ключевые слова и модификаторы (такие, как UNTRACED, EXCLUSIVE и проч). Насчёт переводить любой идентификатор пока рано говорить, т.к. в движке пока всплывают проблемы на каждом новом переводе. Пока я его пропустил через 3 файла и вносил много правок.
Re: дневник Яос
Сегодня уже времени было немного - последний день отпуска. Починил пошаговый отладчик (теперь он вроде работает не хуже прежнего, хотя раньше он тоже работал плохо, но хоть как-то). Немного ещё попереводил (и немного даже порефакторил), индекс кирилличности поднялся до 15.93%, но на самом деле вряд ли это честная единичка - скорее всего это ближе к неточности округления. 0,01% в день - до 100% дойдём примерно за 85/0.01 = 8500 дней = 23 года. Ну, есть чем занять остаток дней и что передать потомкам (это смотря сколько Бог отведёт). Обновил главную страницу репозитория. Залил кириллические ключевые слова в главную ветку - ломающие совместимость изменения происходят каждый день и, видимо, идти вперёд по бразильской системе уже проще, чем назад.
https://gitlab.com/budden/ja-o-s/-/comm ... 3e969cd619
Приехала Raspberry Pi, но нет адаптера для карточки, нет мыши и клавиатуры, поэтому проверить даже линукс не представляется пока что возможным. Мне не очень нравится ситуация с UART - под Linux его нужно как-то конфигурировать. В общем, немного покопаюсь с этой малиной, но особо ложиться костьми не буду. Zybo прошла таможню, где теперь она шатается - то неведомо. Желания копаться с ней нет вообще.
В целом можно уже подвести итоги года - план почти выполнен, вот он:
http://plana.mybb.ru/viewtopic.php?id=1286
https://gitlab.com/budden/ja-o-s/-/comm ... 3e969cd619
Приехала Raspberry Pi, но нет адаптера для карточки, нет мыши и клавиатуры, поэтому проверить даже линукс не представляется пока что возможным. Мне не очень нравится ситуация с UART - под Linux его нужно как-то конфигурировать. В общем, немного покопаюсь с этой малиной, но особо ложиться костьми не буду. Zybo прошла таможню, где теперь она шатается - то неведомо. Желания копаться с ней нет вообще.
В целом можно уже подвести итоги года - план почти выполнен, вот он:
http://plana.mybb.ru/viewtopic.php?id=1286
Re: дневник Яос
Слегка пришёл в себя после неудачи с запуском Raspberry Pi (см. тему http://вече.программирование-по-русски. ... ?f=5&t=329 ), особо времени нет из-за работы, но часок вечером всё же уделил переводу.
В движке пока крупные дыры - около 20 мест пришлось доделывать руками (возможно, что я это сделал и криво - в крайнем случае можно будет отступить, переделать и слить новый и старый результат; просто переделать нельзя, т.к. перевёл много комментариев и строковых литералов, естественно, руками без всякого движка). Теперь места с проблемами зафиксированы в виде коммита 06f1c1654 . Индекс кирилличности 15.94%. Думаю установить норму роста индекса кирилличности в 0.01% в неделю - так вся работа будет закончена за 10000 недель = 161 год. Думается, с такой нормой я достаточно ясно покажу, что данная работа не подлежит тому, чтобы быть сделанной одним лицом, но для народа или государства такая задача вполне посильна. Наверное, можно поставить норму и больше, но я не планирую заниматься одним только переводом. Как минимум, придётся править баги в движке перевода и в самой ЯОС, а также писать приложение, к-рое я замыслил. И всё это в сумме называется "хобби-проект", на который особо много времени уделить не выйдет. Поэтому завершить перевод за 161 год - вполне нормальный темп. Этот темп достаточен, чтобы процедура не вылетала из головы и не нужно было каждый раз её заново изучать.
Норма по переводу на эту неделю выполнена.
В движке пока крупные дыры - около 20 мест пришлось доделывать руками (возможно, что я это сделал и криво - в крайнем случае можно будет отступить, переделать и слить новый и старый результат; просто переделать нельзя, т.к. перевёл много комментариев и строковых литералов, естественно, руками без всякого движка). Теперь места с проблемами зафиксированы в виде коммита 06f1c1654 . Индекс кирилличности 15.94%. Думаю установить норму роста индекса кирилличности в 0.01% в неделю - так вся работа будет закончена за 10000 недель = 161 год. Думается, с такой нормой я достаточно ясно покажу, что данная работа не подлежит тому, чтобы быть сделанной одним лицом, но для народа или государства такая задача вполне посильна. Наверное, можно поставить норму и больше, но я не планирую заниматься одним только переводом. Как минимум, придётся править баги в движке перевода и в самой ЯОС, а также писать приложение, к-рое я замыслил. И всё это в сумме называется "хобби-проект", на который особо много времени уделить не выйдет. Поэтому завершить перевод за 161 год - вполне нормальный темп. Этот темп достаточен, чтобы процедура не вылетала из головы и не нужно было каждый раз её заново изучать.
Норма по переводу на эту неделю выполнена.
- Лис [Вежливый]
- Сообщения: 563
- Зарегистрирован: 08.10.18 13:32
Re: дневник Яос
Но в чём смысл делать проект, который не будет закончен?всё это в сумме называется "хобби-проект"
Если видно, что он закончен не будет, значит надо менять тактику, т.е.
переходить к непрямым действиям (искать сторонников (финансирование), готовить презентационные материалы).
Re: дневник Яос
Ну, я думаю, что мультимедиа-приложение я всё же осилю. А перевод 100% текста - нет. Не все проекты делаются за жизнь одного человека, иногда нужно хотя бы начать. Русификация медицины длилась примерно 150 лет. Можно посмотреть вообще на развитие любой отрасли - там всегда всё веками делается. Ну не получается у меня сделать так, чтобы моя работа стала ответом на актуальные вызовы. Значит, от этого придётся отступиться. А что мне предлагается, голову об стену разбить?
- Лис [Вежливый]
- Сообщения: 563
- Зарегистрирован: 08.10.18 13:32
Re: дневник Яос
Нет, сменить специальность с программиста на специальность публичного политика. У них, очевидно, тоже есть цели, которые можно достигать, и показатели, которые можно замерять, исчислять. Оба эти вида деятельности хоббийные, поэтому нет разницы каким из них заниматься. В то же время у "политического" пути есть потенциальный мультипликативный эффект, и этот путь не ведёт в тупик. Никто в коде чужом копаться не будет, останутся только общие идеи. А идеи лучше всего распространять текстами и перформансами (выступать на конференциях, российских аналогах TED, например).что мне предлагается, голову об стену разбить?
Re: дневник Яос
Программист из меня, смею надеяться, получился неплохой, а публичный политик? Скорее всего - никакой. Да и публичный политик что делает? Только болтает. Даже через 160 лет у него может ничего не получиться, если его не услышат. А тот, кто занимается непосредственным созиданием, может "писать в стол". Это хуже, чем иметь тиражи, но лучше, чем совсем ничего.
Re: дневник Яос
Боюсь, не уложиться мне в 161 год. Только сел, а уже индекс кириллизации 15,96%. При том, что успел починить ошибку в движке перевода, сверить старую и новую версию и исправить конфликты.
Re: дневник Яос
15,97% . Я подумал, что в индекс кирилличности нужно включить и документы, которых было написано вовсе не так уж и мало. Так что придётся начать всё заново. И главное, составить красивый график, как оно растёт.
Re: дневник Яос
Добавил документы - сразу стало 16.64%.
Re: дневник Яос
Попереводил СборщикВыпускаЯОС - стало 16.68% - наверное, в общей сложности часа два.
Re: дневник Яос
Вероятно, что если дальше так пойдёт, то норму можно удесятерять. Но какая разница, 161 год или 16 лет? С трудом представляю, что я ещё 16 лет так буду сидеть и каждый день что-то переводить. В общем-то меня оба срока не устраивают. Так что не буду ничего удесятерять, просто, видимо, буду делать в этой работе перерывы на что-то другое.
Re: дневник Яос
16.69% . Всплыл вопрос про именование контейнеров: https://www.linux.org.ru/forum/development/16082380
Последний раз редактировалось БудДен 01.01.21 22:56, всего редактировалось 1 раз.
Re: дневник Яос
С Новым годом!
16.71%
Никак не могу закончить всего лишь один файл на 3000 строк, отвечающий за сборку системы. У него индекс кирилличности сейчас 49.3% . Порогом, когда становится осмысленным применение Яроклавы, является 50%, но в данном случае я хочу перевести язык описания конфигураций ЯОС на русские ключевые слова, так что придётся, видимо, зайти за эти 50%. Плюс к тому, в начале файла большой комментарий с описанием команд, который тоже надо перевести. Вопрос зацепится, скорее всего, и за ввод кириллицы из "чёрной консоли". А может быть, и нет.
16.71%
Никак не могу закончить всего лишь один файл на 3000 строк, отвечающий за сборку системы. У него индекс кирилличности сейчас 49.3% . Порогом, когда становится осмысленным применение Яроклавы, является 50%, но в данном случае я хочу перевести язык описания конфигураций ЯОС на русские ключевые слова, так что придётся, видимо, зайти за эти 50%. Плюс к тому, в начале файла большой комментарий с описанием команд, который тоже надо перевести. Вопрос зацепится, скорее всего, и за ввод кириллицы из "чёрной консоли". А может быть, и нет.
Re: дневник Яос
Слегка подобрал сопли. Надо работать вдолгую - значит будем работать вдолгую. Надо привлекать народ - значит будем привлекать народ.
Новости апокалипсиса бодрят - на ruskline.ru пишут, что папа Римский объединился с мировыми олигархами для создания инклюзивного капитализма, а в других новостях пишут, что в нижней палате американского конгресса демократы предлагают исключить из обращения местоимения "он" и "она".
Частично решил проблему с вводом юникода в чёрную консоль - починил на уровне WinAPI, теперь надо чинить уже обероновский код. Но раз я какой-то код трогаю - то надо его перед этим перевести - мы же работаем вдолгую.
В связи с этим немного попереводил модуль консольного ввода-вывода. В модуле Shell.Mod достигнута КМК рекордная степень кирилличности в 61%, вот он:
https://gitlab.com/budden/ja-o-s/-/blob ... /Shell.Mod
Нашёл таблицу для перевода управляющих символов ASCII, http://вече.программирование-по-русски. ... ?f=6&t=343
Дописал несколько строчек в веб-словарь - теперь в нём 103 ячейки.
Индекс кирилличности 16.75%
Новости апокалипсиса бодрят - на ruskline.ru пишут, что папа Римский объединился с мировыми олигархами для создания инклюзивного капитализма, а в других новостях пишут, что в нижней палате американского конгресса демократы предлагают исключить из обращения местоимения "он" и "она".
Частично решил проблему с вводом юникода в чёрную консоль - починил на уровне WinAPI, теперь надо чинить уже обероновский код. Но раз я какой-то код трогаю - то надо его перед этим перевести - мы же работаем вдолгую.
В связи с этим немного попереводил модуль консольного ввода-вывода. В модуле Shell.Mod достигнута КМК рекордная степень кирилличности в 61%, вот он:
https://gitlab.com/budden/ja-o-s/-/blob ... /Shell.Mod
Нашёл таблицу для перевода управляющих символов ASCII, http://вече.программирование-по-русски. ... ?f=6&t=343
Дописал несколько строчек в веб-словарь - теперь в нём 103 ячейки.
Индекс кирилличности 16.75%
Re: дневник Яос
В Shell.mod индекс кирилличности достиг 82%. Поскольку он использует другие модули, которые ещё не переведены, это на данный момент предел возможного. Хотя вот вижу ещё несколько комментариев, которые не переведены - и тогда 86.7%
Общий индекс кирилличности - 16.79%
Общий индекс кирилличности - 16.79%
Re: дневник Яос
Заработала кириллица в командной оболочке, в т.ч. в "чёрной консоли" под Windows. Т.е. глюки ещё остались, но во всяком случае, удалось
выполнить команду в кириллице через чёрную консоль. Индекс кирилличности 16.80% (я ожидал, что он упадёт, т.к .при внедрении UCS32 в Shell.Mod пришло много латиницы; впрочем, в самом Shell.Mod индекс кирилличности упал до 81%).
выполнить команду в кириллице через чёрную консоль. Индекс кирилличности 16.80% (я ожидал, что он упадёт, т.к .при внедрении UCS32 в Shell.Mod пришло много латиницы; впрочем, в самом Shell.Mod индекс кирилличности упал до 81%).
Re: дневник Яос
Теперь похоже, что и вправду заработала. Ещё вчера сделал двухъязычными некоторые команды консоли:
Индекс кирилличности 16.81% (немного перевёл комментариев, плюс кое-что дописал, код сегодня не переводил).
Зато теперь не работает консоль в графике (WMShell.Open)
Код: Выделить всё
>справка
--- Справка ---
сокращ/alias: Покажи список сокращённых команд
сокращ/alias 'имя'='команда': Создаё новую сокращённую команду
сокращ/alias 'имя': Удали команду
загрсокращ/loadalias имяФайла: Загрузи сокращения команд из файла
рекурс/batch: запусти оболочку рекурсивно
очисэкр/clear: очисть экран
версия/version: покажи версию
справка/help: покажи эту справку
выход/exit: заверши выполнение оболочки
Зато теперь не работает консоль в графике (WMShell.Open)
Re: дневник Яос
Похоже, что слегка подправил ошибку при выводе из потока в объект "Текст", которая возникает, если литера ФПЮ-8 (UTF-8) оказалась на границе буферов. Всё равно WMShell пока не полностью работает - нельзя вводить кириллицу.
Индекс кирилличности 16.82%, за счёт перевода некоторых внутренних идентификаторов (даже не пользовался движком - обошлось просто заменой текста).
Индекс кирилличности 16.82%, за счёт перевода некоторых внутренних идентификаторов (даже не пользовался движком - обошлось просто заменой текста).
Re: дневник Яос
Кириллица в WMShell, похоже, вводится как положено. Индекс кирилличности - 16.83%, на этот раз за счёт создания нового документа.
Re: дневник Яос
Поправил ещё одну проблему в графической версии оболочки (консоли), но сомнения остались. Если вдруг команда будет печатать литеру с кодом 0, то вывод команды будет обрезан. Плюс починка была произведена изменением в довольно популярной функции - могут вылезти побочные эффекты в других местах. Индекс кирилличности не вырос.
Re: дневник Яос
16.86% + пара мелочей в ИСР.
Re: дневник Яос
16.87%. План на январь был 0.04%, а получилось 0.16%. Поскольку план перевыполнен в 4 раза, переключаюсь на что-нибудь иное до конца января. Видимо, нужно будет посмотреть, как пойдёт дело в рабочие дни, когда свободного времени будет меньше... Хотя нет. Квантом перевода является модуль. Поскольку СборщикВыпускаЯОС.Mod недопереведён, нужно продолжать. Ещё далеко...
Re: дневник Яос
16.94% - всё ещё продолжаю перевод системы сборки. Уже хорошо ощущаются последствия разрывов по времени - есть случаи, когда одно и то же переведено по-разному. Блин, а тут фигня ещё и в том, что XML файлы тоже включены. А если убрать? Тогда 17.08%. Ладно, убирать не будем.
Re: дневник Яос
16.97% - называется, сел на полчасика, а просидел все два.
Re: дневник Яос
Движение замедлилось, т.к. начались рабочие дни. 16.99% . Сделал поддержку русских ключевых слов в файле описания конфигураций (что-то типа файла проекта).
Re: дневник Яос
17.05% . Похоже, что норму можно увеличить. Увеличу до 0.05% в неделю. Тогда за год будет 2.6%, перевод ядра и компилятора с учётом дублирования кода завершится за 7 лет, перевод всей системы - за 40. Огромный успех!
Последний раз редактировалось БудДен 16.01.21 15:02, всего редактировалось 1 раз.
Re: дневник Яос
В общем, секрет успеха здесь в том, чтобы перевести данный проект в категорию "вязания шарфа на спицах" - долгое и занудное дело, однако с видимым прогрессом. Не распыляться на болтовню, метания и стрельбу из рогатки по журавлям в облаках. Мне кажется, что пока что это более-менее удаётся. А дальше ждать, пока Бог заметит и пошлёт вспоможение. Ясно, что данный проект бесполезен для решения насущных проблем безопасности, стоящих перед страной - опоздали так уж опоздали. Если завтра на нас гибридно нападут с применением киберсредств и обычных вооружений, то нас уничтожат, и я бессилен здесь чему-либо помочь. И без меня есть куча людей, которые об этом говорят, а многие что-то и делают. А русификацией ИТ в такой форме не занимается никто. Поэтому надо сосредоточиться на возможном и на стратегически нужном, а как мы будем выживать сегодня и завтра - "те, кто против тех, кто против нас, сделают это без нас", ну или остаётся ещё рабочее время. Или ещё подумать о целеполагании.
Re: дневник Яос
17.07%, индекс кирилличности файла https://gitlab.com/budden/ja-o-s/-/blob ... скаЯОС.Mod - 81%, все имена которые можно было перевести, там переведены, но работа над ним ещё не закончена.
Re: дневник Яос
Пытаюсь реализовать альтернативные русские имена для опций команд, чтобы писать не
а
Там, как обычно, оказалось прибито гвоздями ASCII, начал править, запутался, в итоге начал править низкоуровневый модуль, чтобы он мог делать Peek для юникодных литер, при том, что поток - UTF8. Опять час ночи, а дело не сделано. Т.е. Peek вроде работают, но русских букв в командах не получится уже.
Но при этом успел и попереводить, индекс кирилличности 17.10%
Код: Выделить всё
LisCompiler.Compile --perevediNaRusskijj --klastqPerevodyV="C:/ob/jaos/perevod/p/a/ru" -p=Win32
Options.Mod ~
Код: Выделить всё
LisCompiler.Compile --переведиНаРусский --кластьПереводыВ="C:/ob/jaos/perevod/p/a/ru" -p=Win32
Options.Mod ~
Но при этом успел и попереводить, индекс кирилличности 17.10%
Re: дневник Яос
Занимался внедрением поддержки альтернативных русскоязычных имён опций в движок "команд". Казалось бы, должно работать, но на практике есть ошибки "борщикВыпускаЯОС", т.е. может пропускать первую букву параметра. Индекс кирилличности не изменился.
Re: дневник Яос
Настали суровые трудовые будни, темп снизился. Вроде реализовал опции в кириллице, частично их внедрил (теперь возможно два имени опции, не считая однобуквенного), но явно, что там есть баги, причём неприятные - не работает переход к месту ошибки. Индекс кирилличности 17.12% (резкое замедление)
Re: дневник Яос
Часть времени на неделе и всю субботу убил на ошибку в потоках. Но зато теперь заработали опции на русском языке (но это неточно). Индекс кирилличности 17.13%
P.S. перевёл описание файла конфигураций, и стало 17.15%. В прошлое воскресенье было 17.08%, значит, план на неделю (пере)выполнен.
P.S. перевёл описание файла конфигураций, и стало 17.15%. В прошлое воскресенье было 17.08%, значит, план на неделю (пере)выполнен.
Re: дневник Яос
Будни всё суровее и суровее. Начал переводить опции компилятора - 17.17%
Re: дневник Яос
Перед уходом с работы успеваю написать, что индекс кирилличности - 17.21%, в начале месяца было 16.71%, итого примерно полпроцента за месяц. Но это был месяц с длинными каникулами...
Re: дневник Яос
Ещё попереводил в поезде, сегодня пересобрал - получилось аж 17.24%. На этом завершаем работу января (план перевыполнен в несколько раз) и начинаем подводить итоги.
Re: дневник Яос
Для завершения месяца понадобилось перенести перевод из лисокомпилятора в фоксокомпилятор - и стало 17.32% . Усилия, вложенные в перевод компилятора, удваиваются, т.к. есть две очень близких копии компилятора.
Re: дневник Яос
Занимаюсь поиском затенений одноимённых символов. Есть частичный успех (при затенении выдаётся предупреждение, хотя почему-то не одно, а два). Индекс кирилличности не изменился.
Re: дневник Яос
Начал думать над рефакторингом, который чинит затенения, но тут оказалось, что "переименуй идентификатор" должен
менять и файл переводов, в итоге день закончился на
выделении списка имён файлов в объект (а он был написано по-сишному - список отдельно, длина отдельно, в двух переменных), а цель - всего лишь получить список файлов по маске.
Индекс кирилличности 17.33%, хотя это сейчас вообще не цель. Просто уже выработалась привычка что-то по ходу дела переводить.
менять и файл переводов, в итоге день закончился на
выделении списка имён файлов в объект (а он был написано по-сишному - список отдельно, длина отдельно, в двух переменных), а цель - всего лишь получить список файлов по маске.
Индекс кирилличности 17.33%, хотя это сейчас вообще не цель. Просто уже выработалась привычка что-то по ходу дела переводить.
Re: дневник Яос
Пережил атаку зомби на ЛОРе. Исправил хорошую ошибку в модуле отладочной печати, из-за которой ОС молча падала (ошибочный размер в Heaps.Mod). Занимаюсь разбиением единого файла ПереводыЭлементовКода.XML на помодульные - похоже, что почти готово. После этого нужно будет пробовать сделать рефакторинг "переименуй идентификатор".
Re: дневник Яос
Словарь переводов разбит на отдельные файлы. Технология перевода упрощена для случая, когда нет директив условной компиляции. Занимаюсь рефакторингом "переименуй идентификатор". Есть примерный план прототипа.
Re: дневник Яос
Переименование идентификаторов вроде заработало. Теперь нужно научиться автоматически переименовывать затеняющие. Придумал простой способ, чтобы сделать за один проход: добавлять приставку лNNN, где NNN - уникальный в рамках данного файла номер. Так каждый файл будет обрабатываться за один проход, хотя много файлов могут потребовать много проходов. Можно попробовать делать номер уникальным в рамках всей сборки, но это может оказаться сложно/невозможно.
Re: дневник Яос
Сделал переименование затеняющих идентификаторов для одного файла. К сожалению, даже в компиляторе затенения встречаются где-то в 5-6 файлах. Вероятно, стоило бы сделать внешний цикл, который будет убирать затенения сразу для многих файлов. Хотя можно и потерпеть и делать по одному "вручную".
Теперь остаток февраля буду заниматься улучшением инструментов. Наиболее назревшая вещь - расширение функционала "перехода к определению".
Теперь остаток февраля буду заниматься улучшением инструментов. Наиболее назревшая вещь - расширение функционала "перехода к определению".
Re: дневник Яос
Теперь Alt-F7 умеет переходить к файлу, процедуре, смещению в процедуре и смещению в файле.
Есть недоделки - не умеет переходить к процедуре по переведённому имени (ну и ладно).
Зато понял, что рефакторинг "переименуй идентификатор" недоделан - он не меняет словарь переводов. Просто забыл,
что надо это сделать, в итоге словарь для одного модуля разломан. Или не для одного.
Тягомотина ещё на несколько дней, а то и на пару недель, учитывая, что времени почти не остаётся на Яос сейчас.
Есть недоделки - не умеет переходить к процедуре по переведённому имени (ну и ладно).
Зато понял, что рефакторинг "переименуй идентификатор" недоделан - он не меняет словарь переводов. Просто забыл,
что надо это сделать, в итоге словарь для одного модуля разломан. Или не для одного.
Тягомотина ещё на несколько дней, а то и на пару недель, учитывая, что времени почти не остаётся на Яос сейчас.
Re: дневник Яос
В общем, я не осилил применять переименование к словарю переводов, так, чтобы это работало красиво. Начался какой-то взрыв копипасты и при том стало ясно, что я уже не контролирую то, что происходит в коде. В конце концов вспомнил, как долго отлаживал движок перевода и сколько в нём малопонятных мне самому заплаток. Видимо, нельзя дальше усложнять. Придётся сделать более простой вариант порождения словаря. Откатил изменения, последние пару дней в итоге оказались полностью непродуктивными.
Re: дневник Яос
После смены подхода на более убогий всё пошло гораздо быстрее - уже сделал распечатку словаря с учётом переименований и плюс поправил очередной раз поиск затеняющих одноимённых символов. Нужно ещё это интегрировать, думаю, за неделю в городском транспорте доделаю. В этом случае план-минимум на месяц будет кое-как выполнен.
Re: дневник Яос
Вроде доделал перепорождение словаря с учётом переименований. Осталось сделать, чтобы в изначальном словаре
не выводились комментарии, поскольку они теряются при перепорождении с учётом переименований и получается большой и некрасивый diff.
не выводились комментарии, поскольку они теряются при перепорождении с учётом переименований и получается большой и некрасивый diff.
Re: дневник Яос
Комментарии тоже надо переводить.
Re: дневник Яос
Здесь речь идёт не о переводе комментариев в исходниках, а лишь о комментариях в самом словаре переводов, которые порождались и показывали, например, где процедура, а где - ообъект. Они удобны, но необходимости в них нет. Комментарии в исходных текстах никуда не теряются. Конечно, их тоже надо переводить, но движок перевода их не трогает - их можно переводить только вручную.
Re: дневник Яос
Запустилась zybo, но не A2, а Linux. См. соотв. тему.
Re: дневник Яос
Пытаюсь разобраться с тем, как запустить Zybo. Очень похоже, что все нужные файлы в репозитории присутствуют, но пока не совсем ясно, что с ними делать. Описания есть, но они относятся к разным версиям системы. Актуального и полного нет.
Re: дневник Яос
Запустилась A2 на Zybo Z7-10. Тема:
http://вече.программирование-по-русски. ... ?f=5&t=389
Наиболее подробное описание результата:
https://forum.oberoncore.ru/viewtopic.p ... 60#p113960
Нужно теперь полностью зафиксировать процесс запуска A2, чтобы он не забылся. Тогда февраль можно будет считать почти успешно завершённым. Но факт состоит в том, что теперь я могу запустить A2 на ARM и к тому же там есть реализация видеокарты на ПЛИС, о которой некоторое время назад кто-то мечтал. Кроме того, в A2 есть какие-то инструменты для программирования на ПЛИС, но я в них пока не планирую разобраться. Моя задача - перенести успех на ЯОС и настроить запуск тестов, но это задача не февраля, не марта, не апреля, а аж июня.
http://вече.программирование-по-русски. ... ?f=5&t=389
Наиболее подробное описание результата:
https://forum.oberoncore.ru/viewtopic.p ... 60#p113960
Нужно теперь полностью зафиксировать процесс запуска A2, чтобы он не забылся. Тогда февраль можно будет считать почти успешно завершённым. Но факт состоит в том, что теперь я могу запустить A2 на ARM и к тому же там есть реализация видеокарты на ПЛИС, о которой некоторое время назад кто-то мечтал. Кроме того, в A2 есть какие-то инструменты для программирования на ПЛИС, но я в них пока не планирую разобраться. Моя задача - перенести успех на ЯОС и настроить запуск тестов, но это задача не февраля, не марта, не апреля, а аж июня.
Re: дневник Яос
Занимаюсь растенением затеняющих идентификаторов в компиляторе. Возни довольно много. Индекс кирилличности 0.1747% . На условное начало месяца было 0.1748%, ретроградное движение... Странно это...
Re: дневник Яос
Опять растенение, коэффициент кирилличности даже нет смысла мерять сегодня.
Re: дневник Яос
Опять растенение. Пришлось его частично автоматизировать, потому что файлов, зависящих от компилятора и требующих растенения оказалось несколько десятков. Ещё происходит какая-то муть в символьных файлах, получаю предупреждения. Пока не понял, что это.
Re: дневник Яос
Похоже, что с растенением модулей, зависящих от компилятора, покончено. Хотя надо ещё раз проверить. При этом пришлось править диагностику - иногда она выдавала неточные результаты. После исправления обнаружился новый вариант проблемы затенения, который автоматически нерешается. Правда, он весьма редок. Немного пополнил документацию, но индекс кирилличности не изменился.
Re: дневник Яос
Сел под вечер ,думаю, сейчас быстро набросаю таблицу всех переводов, чтобы заполнять её при формировании словаря под новый модуль. Оберон, конечно, не лисп. На лиспе сделал бы за 15 минут, а тут все 2 часа ушли. В итоге получилось вот это:
http://вече.программирование-по-русски. ... =395#p2581
Ну и код получился довольно игривый:
http://вече.программирование-по-русски. ... =395#p2581
Ну и код получился довольно игривый:
Код: Выделить всё
проц Заполни();
перем член1 : ПЭК.ИменованнаяОбластьВидимости;
тело
нов(таблица_прецедентов,1000);
член1 := ПЭК.модули;
цикл
если член1 = НУЛЬ то прерви_цикл кн;
просей_тип член1:
| ПЭК.Перевод делай
ЗаполниВнутр(член1) кн;
член1 := член1.следующий кн кн Заполни;
Re: дневник Яос
В принципе это не планировалось, но ведь всё равно придётся точно так же руками выискивать прецеденты того, как я переводил такое-то имя в прошлый раз. Логичнее сразу эти прецеденты заполнять при создании заготовки словаря переводов для нового модуля, чем делать эту работу руками. Я хотел отложить это до следующего цикла улучшения инструментов, но очень уж туго вспоминать. В связи с этим собственно перевод и сегодня существенно не продвинулся. "Лучше весь день промучаться, зато потом за 5 минут долететь" - порочная логика всех таких случаев.
Re: дневник Яос
Проект ЯОС приостанавливается на неопределённый срок ввиду открывшихся перспектив на рынке труда. Переходим на проект словаря. Теперь он будет на Clojure. Начинаем с https://github.com/taylorlapeyre/clojure-web-app
Чтобы не забыть - остановился на том, что начал делать вставку "прецедентов" в генератор словаря. Т.е. при создании словаря для нового модуля нужно сначала поискать, как это слово переводилось, и вставить эти варианты как-то так: en="blabla" ru="?блабла,бла-бла,болтовня"
Сделан (в файле проба.ярм, в ветке перевод-словаря) сбор всех вариантов и запись их в чудовищную хеш-таблицу.
Чтобы не забыть - остановился на том, что начал делать вставку "прецедентов" в генератор словаря. Т.е. при создании словаря для нового модуля нужно сначала поискать, как это слово переводилось, и вставить эти варианты как-то так: en="blabla" ru="?блабла,бла-бла,болтовня"
Сделан (в файле проба.ярм, в ветке перевод-словаря) сбор всех вариантов и запись их в чудовищную хеш-таблицу.
Re: дневник Яос
Восторги по clojure поутихли, буду всё же потихоньку пилить ЯОС, хотя основные силы пойдут на веб-версию словаря, буду доделывать то, что уже есть на go. Переводить на другой язык недоделанное приложение - не очень хорошая затея.
Внедрил вставку прецедентов в заготовку словаря, впечатления пока не очень. Неизвестно, чего больше, пользы или вреда.
https://gitlab.com/budden/ja-o-s/-/comm ... f0cf295c98
Внедрил вставку прецедентов в заготовку словаря, впечатления пока не очень. Неизвестно, чего больше, пользы или вреда.
https://gitlab.com/budden/ja-o-s/-/comm ... f0cf295c98
Re: дневник Яос
Перерыв почти в месяц... Однако урвал сегодня буквально считанные минуты, чтобы добавить несколько переводов. Индекс кирилличности пока не посчитать, т.к. не запускал перевод (он на заготовке не запустится).
Re: дневник Яос
Как-то теплится процесс, определился с переводом нескольких терминов в LisSyntaxTree (это один из ключевых модулей компилятора и термины
весьма фундаментальные).
https://gitlab.com/budden/ja-o-s/-/comm ... df516fe9ab
> LisSyntaxTree. Visitor - посетитель, Import - ИспользованиеМодуля, Statement - Предписание, StatementSequence - ЦепочкаПредписаний
весьма фундаментальные).
https://gitlab.com/budden/ja-o-s/-/comm ... df516fe9ab
> LisSyntaxTree. Visitor - посетитель, Import - ИспользованиеМодуля, Statement - Предписание, StatementSequence - ЦепочкаПредписаний
Re: дневник Яос
Ещё немного попереводил. Чудные названия конечно получаются, например "ПредписаниеЕсли", "ПредписаниеВвестиВывестиЧерезПорт", "ПредписаниеПрисвоитьЗначение" (последнее - это := ).
Re: дневник Яос
Звучит естественно.
Видимо, ВвестиИлиВывести.
Выбивается из ряда.
"ПредписаниеПроверитьУсловие"?употребляется при присоединении придаточного предложения, выражающего потенциально возможное условие
Re: дневник Яос
ПредписаниеЕсли удобно называть «Предписание „Если“». Т.е. получается два варианта именования - по открывающему ключевому слову, если оно есть, или по краткому описанию действия, если ключевого слова нет. Проблема здесь в том, что синтаксис языка не позволяет вставлять в идентификаторы знаки препинания. Поэтому идентификатор в виде словосочетания сразу уродуется. Если дальше на его основе создавать новые словосочетания, например, "ПосещаетсяПредписаниеЕсли", то получается «казнить нельзя помиловать" - можно прочитать "Посещается предписание, если".
Кроме того, просей_тип я назвал «Предписание просеять тип», потому что мне сначала попались несколько предписаний, не имеющих открывающего ключевого слова и решил называть их по действию. И только потом понял, что тут тоже возникла на ровном месте словоформа, которая будет затруднять навигацию - нельзя грепом найти синтаксическую конструкцию по открывающему слову. Тогда получается, что «:=» нужно называть «Предписание „Присвой“».
Начинает складываться впечатление, что без того, чтобы разрешить в идентификаторах пробелы и запятые, дело далеко не уйдёт и лучше 1С не получится. Но такое изменение затронет очень много частей и явно на сегодня не по силам.
Пока неясно, что делать дальше.
Кроме того, просей_тип я назвал «Предписание просеять тип», потому что мне сначала попались несколько предписаний, не имеющих открывающего ключевого слова и решил называть их по действию. И только потом понял, что тут тоже возникла на ровном месте словоформа, которая будет затруднять навигацию - нельзя грепом найти синтаксическую конструкцию по открывающему слову. Тогда получается, что «:=» нужно называть «Предписание „Присвой“».
Начинает складываться впечатление, что без того, чтобы разрешить в идентификаторах пробелы и запятые, дело далеко не уйдёт и лучше 1С не получится. Но такое изменение затронет очень много частей и явно на сегодня не по силам.
Пока неясно, что делать дальше.
Re: дневник Яос
Во-первых, это нарушает целостность стиля, что ухудшает восприятие.
Во-вторых, ключевые слова могут поменяться.
В-третьих, могут поменяться даже знаки, знаки на слова, или слова на знаки.
ПредписаниеПрисвоитьЗначение или ПредписаниеПроверитьУсловие - точно описывает суть явления словами, а "ПредписаниеЕсли" - это иероглифическая сущность, порождающая ненужные зависимости, которые потянут за собой в будущее лишние усилия.
Re: дневник Яос
Ну я над этой проблемой думал некоторое время назад. В A2 вообще приняты условные названия, например, я ломал голову над «Part», которое на 4-5 попытке превратилось в условную "веткуПредписания". А по сути она означает «Часть предписания с ветвлением, включающая условие выбора ветки и действия в этой ветке». Я не спец в лингвистике, но я бы сказал, что названия могут быть «условные», т.е. просто некие метки, не связанные по смыслу с обозначаемым, и «объясняющие», где мы не назначаем условную метку, а вместо этого расписываем смысл обозначаемого в более примитивных понятиях.
В плане «чистого кода» кажется более правильным использовать только «объясняющие» названия, чтобы любой залётный программист, если он владеет понятийным аппаратом, сразу понимал, о чём идёт речь. В математических книжках - другой экстремум, когда используются только «условные» γ, μ и δ, цели быть понятными обычно не ставится, скорее наоборот, запутать читателя. Поскольку изначальных понятий мало и выражать через них всё неудобно, в достаточно сложной предметной области условные названия неизбежны. Такая «метка», как ключевое слово, стоящее в начале предписания, выглядит естественной. Так или нет?
В плане «чистого кода» кажется более правильным использовать только «объясняющие» названия, чтобы любой залётный программист, если он владеет понятийным аппаратом, сразу понимал, о чём идёт речь. В математических книжках - другой экстремум, когда используются только «условные» γ, μ и δ, цели быть понятными обычно не ставится, скорее наоборот, запутать читателя. Поскольку изначальных понятий мало и выражать через них всё неудобно, в достаточно сложной предметной области условные названия неизбежны. Такая «метка», как ключевое слово, стоящее в начале предписания, выглядит естественной. Так или нет?
Последний раз редактировалось БудДен 18.04.21 14:11, всего редактировалось 1 раз.
Re: дневник Яос
Это я к тому, что я ошибся при выборе стиля именования. Большинство предписаний можно идентифицировать по ключевому слову, с котороого они начинаются. Исключения - это «:=», «тело .. кн», «вызов процедуры», ну и ещё парочка, может быть. А именованные - это «Если», 2-3 вида циклов, 2 вида ветвления, прерывание цикла, возврат, игнорирование возврата процедуры - гораздо больше. Демократическим путём стиль именования по ключевому слову побеждает. В противном же случае придётся придумывать и помнить «объясняющее» название для всех предписаний, у которых уже есть ключевое слово - это лишнее усложнение. Согласны?
Re: дневник Яос
Если ключевые слова поменяются, то надо будет сделать рефакторинг. Я не сторонник того, чтобы ключевые слова менялись так же легко на уровне конечного пользователя, как шрифты или цветовая схема, хотя это расхожая идея. Не вижу в этом особой пользы. А раз так, то можно на это особо и не закладываться. Я понимаю, что моя точка зрения на это - не единственная, но если даже вдруг когда-то наборы ключевых слов будут настраиваться в ИСР для просмотра данного типа файлов, то в компиляторе всё равно будет некое фиксированное «основное» имя данного ключевого слова. Оно же будет фигурировать и в словаре настроек пользователя.
Re: дневник Яос
Дело в том, что Вы изначально не знаете, что устоится, а что - нет. Искуственное замедление отсрочит только применение самого языка.
Re: дневник Яос
Ну одно дело, если имена поменяются, а другое - создавать специальную инфраструктуру, чтобы каждый мог менять. Последнее я делать не собираюсь. И, в любом случае, как я уже написал, внутри компилятора всё равно будет некое базовое название, которое у каждого пользователя меняться не будет. Чтобы понять код компилятора и даже чтобы настроить набор ключевых слов под себя, это базовое название нужно будет знать. Не отказываться же от слова "если" только ради того, чтобы убрать это базовое название?
Re: дневник Яос
Cпособ именования для спецзнаков получился естественный, а c ключевыми словами - нет.
Но эта "идентификация по ключевому слову" не будет русским языком.
Не демократическим, а копипастным (дублированием).
В этом и есть смысл русскоязычного программирования. Это не усложнение, а облегчение, для тех, кто будет читать исходники.
Или Вам понравились идентификаторы в кишках BBCP? Так-то в русском языке 33 буквы, больше чем в греческом, или латинском.
Только кто потом такое будет читать?
Re: дневник Яос
Осмелюсь стоять на своём. Объём понятийного аппарата может быть разным. Оптимум зависит от того, как читать, и от сложности предметной области. Чем сложнее предметная область, тем больше в ней понятий. Создание понятийного аппарата в целом естественно, но мы можем регулировать его: либо создавать лишние понятия, либо избегать создания понятий там, где они напрашиваются. Если мы создаём лишние понятия, то это может быть удобнее при глубоком погружении в предметную область (сможем излагать информацию более сжато и выражать более тонкие знания). Если мы воздерживаемся от создания уместных понятий, то мы облегчаем поверхностную деятельность (зайти раз в 5 лет и по мелочи поправить). Т.е. нет наилучшего для всех случаев способа представления кода.В этом и есть смысл русскоязычного программирования. Это не усложнение, а облегчение, для тех, кто будет читать исходники.
Или Вам понравились идентификаторы в кишках BBCP? Так-то в русском языке 33 буквы, больше чем в греческом, или латинском.
Только кто потом такое будет читать?
Конкретно в случае предписания "если", допустим мы пойдём по вашему предложению и назовём его правильно, т.е. "Предписание_выполнить_один_из_вариантов_в_зависимости_от_значения_выражений". Тогда вновь пришедшему для чтения компилятора нужно будет сначала уяснить себе, что предписание "если" называется именно так, и потом всю дорогу это помнить. И то же нужно будет сделать для каждого предписания, начинающегося с ключевого слова. Это разве облегчит работу? В моём же случае начинаем с правила "предписание называется Предписание<КлючевоеСлово>, а у кого нет ключевых слов - надо искать и запоминать".
Re: дневник Яос
Потому я и думаю уже, как разрешить знаки препинания. Потому что ПредписаниеЕсли - это действительно выносит мозг, а вот какое-нибудь Предписание«Если» - уже в меньшей степени.
Re: дневник Яос
Но все равно утомительно, потому что слово использовано не по своему назначению. Читать текст с понятиями в кавычках в разы медленнее.
Не то, чтобы это была сама по себе плохая задача. Плохо использовать как затычку русского языка.
Ключевых слов - несколько десятков, и то, как понял, не все относятся к предписаниям. Что там надо назвать-то?
ВыполнитьОбусловленныеДействия, ВИномСлучаеПроверитьУсловие, СделатьВИномСлучае, ПовторятьСПроверкойУсловияОстановаВКонце, ПроверитьУсловияОкончанияЦикла, ПовторятьПокаВерноУсловие, ЗапуститьЦиклСоСчетчиком, УстановитьКонечноеЗначениеСчетчика, УстановитьШагСчетчика, ЗапуститьЦиклСМножествомВыходов, ВыйтиИзЦикла, ВыбратьЗначение (или ПроверитьЗначение), УстановитьВыбираемыеЗначения (или УстановитьДействияПриЗначениях)? Что-то еще?
Последний раз редактировалось MihalNik 18.04.21 18:28, всего редактировалось 1 раз.
Re: дневник Яос
Это зависит только от того, как именно будет названо. В Вашем же случае Вы снимаете с себя ответственность за это.БудДен писал(а): ↑18.04.21 15:17Конкретно в случае предписания "если", допустим мы пойдём по вашему предложению и назовём его правильно, т.е. "Предписание_выполнить_один_из_вариантов_в_зависимости_от_значения_выражений". Тогда вновь пришедшему для чтения компилятора нужно будет сначала уяснить себе, что предписание "если" называется именно так, и потом всю дорогу это помнить. И то же нужно будет сделать для каждого предписания, начинающегося с ключевого слова. Это разве облегчит работу? В моём же случае начинаем с правила "предписание называется Предписание<КлючевоеСлово>, а у кого нет ключевых слов - надо искать и запоминать".
Или наоборот.
Это же оператор выбора CASE. Конечно, условное ветвление - частный случай. Но в Обероне-то отдельно.
Но вот кому какое до этого дело?
Re: дневник Яос
> В Вашем же случае Вы снимаете с себя ответственность за это.
Я не снимаю ответственность, а просто использую ранее выстраданные названия повторно.
Вот здесь, я думаю, перечислены все statement -ы:
https://gitlab.com/budden/ja-o-s/-/blob ... e.Mod#L448
Я уже всё равно принял решение называть предписания по ключевым словам, но Вы можете в качестве упражнения попробовать придумать названия операторов так, чтобы было очевидно, где "If", где "case" а где "With". Ключевые слова, соответственно, "если", "просей" и "просей_тип".
> Но вот кому какое до этого дело?
Если мы приходим к консенсусу, то мы команда. Если заканчиваем на высказываниях из серии "меня не интересует ваша точка зрения" - то нет. Разница ощутимая, в общем-то.
Я не снимаю ответственность, а просто использую ранее выстраданные названия повторно.
Вот здесь, я думаю, перечислены все statement -ы:
https://gitlab.com/budden/ja-o-s/-/blob ... e.Mod#L448
Я уже всё равно принял решение называть предписания по ключевым словам, но Вы можете в качестве упражнения попробовать придумать названия операторов так, чтобы было очевидно, где "If", где "case" а где "With". Ключевые слова, соответственно, "если", "просей" и "просей_тип".
> Но вот кому какое до этого дело?
Если мы приходим к консенсусу, то мы команда. Если заканчиваем на высказываниях из серии "меня не интересует ваша точка зрения" - то нет. Разница ощутимая, в общем-то.
Re: дневник Яос
ПовторятьСПроверкойУсловияОстановаВКонце
В реальном коде тогда будет
ПосещаетсяПредписаниеПовторятьСПроверкойУсловияОстановаВКонце
Это не только не особо удобочитаемо, но и может привести к превышению предельного размера идентификатора.
Неужели это лучше, чем
ПосещаетсяПредписание«цикл_до»
?
В реальном коде тогда будет
ПосещаетсяПредписаниеПовторятьСПроверкойУсловияОстановаВКонце
Это не только не особо удобочитаемо, но и может привести к превышению предельного размера идентификатора.
Неужели это лучше, чем
ПосещаетсяПредписание«цикл_до»
?
Re: дневник Яос
Вопрос как бы не стоит таким образом. Вы в любом случае сможете сделать так, как захотите.
Последний раз редактировалось MihalNik 18.04.21 22:03, всего редактировалось 1 раз.
Re: дневник Яос
Это зависит от контекста применения. Оторвано от него нельзя выбрать правильные названия. Но если выбрать исчерпывающее выражение, на месте будет виднее, что в нем лишнее.БудДен писал(а): ↑18.04.21 18:59ПовторятьСПроверкойУсловияОстановаВКонце
В реальном коде тогда будет
ПосещаетсяПредписаниеПовторятьСПроверкойУсловияОстановаВКонце
Это не только не особо удобочитаемо, но и может привести к превышению предельного размера идентификатора.
Неужели это лучше, чем
ПосещаетсяПредписание«цикл_до»
?
"ПовторятьДоУсловия" не так уж сильно и длиньше, чем "цикл_до".
Далее, почему нужно сократить именно эту часть, а, например, не "Посещается" до "ЗаходВ" или даже просто "В"?
"ПосещаетсяПредписание" = "ВПредписание". Тогда
ПосещаетсяПредписание«цикл_до» = ВПредписаниеПовторятьДоУсловия.
Сокращать важно именно шаблоны, которые часто используются и, соответственно легко запомнить. Хотя в данном случае все слова остаются целыми. В обычных языках все это давным давно обкатано и выражено в кратких частях речи вроде союзов, предлогов, частиц и местоимений.
А в исходниках, вероятно, проблема декомпозиции и должно быть просто "ПосещаетсяПредписание".
Расширение типов вроде бы в Обероне есть.
Re: дневник Яос
Там нет проблемы декомпозиции. Там есть ровно такое ООП, и ровно та проблема, которая решается шаблоном Посетитель, и в меру моих знаний (я не знаток и не любитель ООП), он сделан правильно. В любом случае, если вдруг даже это и можно улучшить с т.з. архитектуры, то у меня нет на это ресурсов на рефакторинг всего компилятора (а используется там этот посетитель много раз, и даже я сам создавал два-три потомка этого визитора для целей перевода).
Вот первая попавшаяся статья про этот шаблон, посмотрите, как там сделано: https://refactoring.guru/ru/design-patterns/visitor
Кроме того, ЗаходВ - это опять винительный падеж, от которого мы как раз и ушли, увеличив количество букв. Заменить в этом случае на ЗаходВ или просто на В без уродования языка не получится.
Т.е. Вам пока не удалось представить альтернативные места, где можно было бы что-то сократить.
Подумайте ещё вот о чём: представьте себе, что делается дамп дерева разбора для отладки в виде условного XML/JSON. Неужели Вы предпочтёте видеть вот эти вот простыни из словосочетаний, а не названия открывающих ключевых слов, где они есть?
Вот первая попавшаяся статья про этот шаблон, посмотрите, как там сделано: https://refactoring.guru/ru/design-patterns/visitor
Кроме того, ЗаходВ - это опять винительный падеж, от которого мы как раз и ушли, увеличив количество букв. Заменить в этом случае на ЗаходВ или просто на В без уродования языка не получится.
Т.е. Вам пока не удалось представить альтернативные места, где можно было бы что-то сократить.
Подумайте ещё вот о чём: представьте себе, что делается дамп дерева разбора для отладки в виде условного XML/JSON. Неужели Вы предпочтёте видеть вот эти вот простыни из словосочетаний, а не названия открывающих ключевых слов, где они есть?
Последний раз редактировалось БудДен 18.04.21 23:38, всего редактировалось 2 раза.
Re: дневник Яос
Ввиду того, что обнаружились трудности при формировании переводов словосочетаний, теперь в идентификаторах можно вставлять некоторые знаки препинания:
¡ - вместо восклицательного знака
¿ - вместо вопросительного
˛ - вместо запятой
ˉ - вместо тире или дефиса
и вот такие кавычки «» - они должны быть сбалансированы, но это не проверяется
Подчёркивание и раньше было - его можно использовать вместо пробела.
Применять их вряд ли можно в именах модулей, но изменён основной компилятор, ИСР, подсветка синтаксиса.
Не изменён также движок перевода (не уверен, что потребуется какая-то работа, но тестов не проводилось).
¡ - вместо восклицательного знака
¿ - вместо вопросительного
˛ - вместо запятой
ˉ - вместо тире или дефиса
и вот такие кавычки «» - они должны быть сбалансированы, но это не проверяется
Подчёркивание и раньше было - его можно использовать вместо пробела.
Применять их вряд ли можно в именах модулей, но изменён основной компилятор, ИСР, подсветка синтаксиса.
Не изменён также движок перевода (не уверен, что потребуется какая-то работа, но тестов не проводилось).
Re: дневник Яос
Главное, что Лис заблаговременно отправлен в бан и не сможет требовать других иероглифов)БудДен писал(а): ↑18.04.21 23:31Ввиду того, что обнаружились трудности при формировании переводов словосочетаний, теперь в идентификаторах можно вставлять некоторые знаки препинания:
¡ - вместо восклицательного знака
¿ - вместо вопросительного
˛ - вместо запятой
ˉ - вместо тире или дефиса
и вот такие кавычки «» - они должны быть сбалансированы, но это не проверяется
Re: дневник Яос
Шаблон-то не причем. В любом случае название не передает смысла, более чем "goto". A поскольку любая процедура это goto, в качестве любого префикса она бессмыслена, кроме отличения процедуры от данных. Значит, чем короче, тем лучше. Так-то можно и какую-нибудь стрелочку в имя добавить. Правда, в данном случае вообще неясно, в чем проблема, т.к. винительная форма не отличима от именительной, даже какой-нибудь недопоиск сломаться не сможет.БудДен писал(а): ↑18.04.21 23:28Там нет проблемы декомпозиции. Там есть ровно такое ООП, и ровно та проблема, которая решается шаблоном Посетитель, и в меру моих знаний (я не знаток и не любитель ООП), он сделан правильно. В любом случае, если вдруг даже это и можно улучшить с т.з. архитектуры, то у меня нет на это ресурсов на рефакторинг всего компилятора (а используется там этот посетитель много раз, и даже я сам создавал два-три потомка этого визитора для целей перевода).
Вот первая попавшаяся статья про этот шаблон, посмотрите, как там сделано: https://refactoring.guru/ru/design-patterns/visitor
Но для чего именно посещается не ясно, так что название не содержит самого главного. Но это, может быть, опять же, по причине оторванности от контекста.
Re: дневник Яос
Ну ладно, мнения разошлись, дальше некогда особо обсуждать. Коротко: в данном случае винительная не отличается, а в другом может отличаться. Шаблон посетитель - это тоже конкретный термин из ООП, я это не люблю, но он есть независимо от моей нелюбви и его тоже нужно перевести. Застолбить имя "Посещается" - и будет всегда понятно, что применён этот шаблон. Если в одном случае применения будет "В", а в другом - "Посещается", то будет ровно то, против чего Вы выступаете, когда я называю предписание "если" - отсутствие единого стиля.
Дальше - если выписать эти методы в столбки, то они плохо смотрятся, но в живом применении слово "посещается" будет мелькать не так уж и часто (см. файл). Можно потерпеть. Стрелки нужны там, где подлежащее сокращению слово встречается часто и повсеместно.
Дальше - если выписать эти методы в столбки, то они плохо смотрятся, но в живом применении слово "посещается" будет мелькать не так уж и часто (см. файл). Можно потерпеть. Стрелки нужны там, где подлежащее сокращению слово встречается часто и повсеместно.
Re: дневник Яос
Убедился, что движок перевода не ломается на знаках препинания.
Re: дневник Яос
Немного попереводил. Идёт довольно туго, времени удаётся выделять мало. Начал создавать описание процедуры придумывания перевода.
Re: дневник Яос
Начал массировано переводить типы. Ужасно!
https://gitlab.com/budden/ja-o-s/-/blob ... в0.XML#L53
Проблемы следующие: иногда долго разбираться. Например, не знаю, что такое TensorRange, да оно и не нужно мне. В итоге, качество будет как у автопереводчика. Но это ладно ещё. Другая проблема - это как писать: „тип строкового литерала“ или „тип строковых литералов“? По идее нужно во множественном числе, но мне кажется, что есть некая условность и то, что обозначается типом ставится в единственном числе.
Ещё одна проблема - это баланс между сокращениями и полными именами. ПосетиОбращКТипуМатемМассива - обращ вроде у нас везде сокращается, а вот МатемМассив надо ли сокращать или надо писать МатематичекийМассив? Ведь эти сокращения надо будет потом помнить. В общем, тягостное ощущение от всего этого.
https://gitlab.com/budden/ja-o-s/-/blob ... в0.XML#L53
Проблемы следующие: иногда долго разбираться. Например, не знаю, что такое TensorRange, да оно и не нужно мне. В итоге, качество будет как у автопереводчика. Но это ладно ещё. Другая проблема - это как писать: „тип строкового литерала“ или „тип строковых литералов“? По идее нужно во множественном числе, но мне кажется, что есть некая условность и то, что обозначается типом ставится в единственном числе.
Ещё одна проблема - это баланс между сокращениями и полными именами. ПосетиОбращКТипуМатемМассива - обращ вроде у нас везде сокращается, а вот МатемМассив надо ли сокращать или надо писать МатематичекийМассив? Ведь эти сокращения надо будет потом помнить. В общем, тягостное ощущение от всего этого.
Re: дневник Яос
Чтобы переводить, надо понимать предметную область иначе будет только хуже. А сокращения почти везде уже придумали до Вас.БудДен писал(а): ↑24.04.21 11:55Начал массировано переводить типы. Ужасно!
https://gitlab.com/budden/ja-o-s/-/blob ... в0.XML#L53
Проблемы следующие: иногда долго разбираться. Например, не знаю, что такое TensorRange, да оно и не нужно мне. В итоге, качество будет как у автопереводчика. Но это ладно ещё. Другая проблема - это как писать: „тип строкового литерала“ или „тип строковых литералов“? По идее нужно во множественном числе, но мне кажется, что есть некая условность и то, что обозначается типом ставится в единственном числе.
Ещё одна проблема - это баланс между сокращениями и полными именами. ПосетиОбращКТипуМатемМассива - обращ вроде у нас везде сокращается, а вот МатемМассив надо ли сокращать или надо писать МатематичекийМассив? Ведь эти сокращения надо будет потом помнить. В общем, тягостное ощущение от всего этого.
Например, надо МатМассив, а не МатемМассив. Хотя в математике никаких массивов нет и о чем речь не ясно.
Это все ерунда, а вот что такое "посетить обращение" догадаться невозможно. Я убрал бы вовсе, оставив "КТипуЧегоТоТам".
Re: дневник Яос
Пишу документ (в формате словаря придумывать названия слишком неудобно). Потихоньку.
https://gitlab.com/budden/ja-o-s/-/blob ... ора-лис.md
https://gitlab.com/budden/ja-o-s/-/blob ... ора-лис.md