Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 28 мар 2024, 13:24

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 27 окт 2018, 16:56 
Не в сети

Сообщения: 350
Начал вот такую переделку компилятора:

https://gitlab.com/budden/nkp/tree/master/k/Ня/Mod

И к ней есть вот такой документ:

http://программирование-по-русски.рф/static/док-ня.html

Задача состоит в продолжении этой работы. В конечном итоге хочу добиться следующих целей:

- понятное описание каждой процедуры на русском языке
- константы разбиты на прямую сумму из групп. Я столкнулся с тем, что группа (* symbol values and ops *) и группа (* symbol values or ops *) пересекаются. Нужно разбить на непересекающиеся группы.

- должен быть создан инструмент, проверяющий, что одинаковые группы констант в разных файлах одинаковы.
- отступ из символа табуляции в исходниках превращается в отступ из одного пробела.
- обзорные статьи в моём стандарте https://gitlab.com/budden/nkp/tree/master/k/Ня/Док , инструмент для генерации HTML предоставлю.

Ваши ставки.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 16 ноя 2018, 03:09 
Не в сети
Аватара пользователя

Сообщения: 67
Откуда: Equestria
TLDR; Это очень хреновое дерьмо, и денег за продолжение выбить не получится.

Надо было начинать с документирования структур ядра компилятора(DevCPT), интерфейсов всех модулей и собрать всё это в удобочитаемую кучу. DevCPT связывает фонтэнд с бэкэндом и даёт понимание большей части компилятора. Подкрепить это ссылкой на книжку Вирта по компиляторостроению и уже было бы сделано 90% работы! Разве что некоторые нюансы прокомментировать. Кто в теме - разобрася бы за несколько часов, кому надо - за несколько дней, а тем кому не надо - и полный перевод на русский не поможет. А то что я увидел в `док-ня` - ёбаный стыд за такое-то время. Я за один день сделал для себя заметку по структурам толще, подробнее и успел применить её на практике с не нулевым результатом. Бегло посмотрел исходники, увидел что и половины комментариев не переведено, полтора добавлено и появилисиь охренительно понятные куски кода!
Код: "OBERON"
  1. obj := ЧитайОписаниеОбъектаИзСимвольногоФайлаВставьВОбластьИВерни(mno);
Да и как вообще потом сопоставлять всю эту "документацию" с оригинальными исходниками? Этот фетиш с переводом идентификаторов вообще стоило выделить в отдельный проект.
В итоге получилось медленно, мало, бесполезно да и ещё заброшено. А когда речь зашла ещё и про деньги на доработку этого - вот тут-то у меня начался бугурт. На что тут вообще может понадобиться 100 тыр?! Дядька, возвращайся на свой лисапед и продолжай зарабатывать на жрат, не уродуй мой КП и ЧорныйЯщик вместо работы!

Ещё бесплатный хинт:
> расшифровываем коды ошибок и прописываем в виде комментария
Внезапно, есть Dev/Rsrc/Errors.odc. В рускоязычых сборках наверняка даже уже переведённый. А необходимость дублирования в комментариях весьма спорное действие.

Я высказался, я всё. По любым возражениям к этому комменту читать подпись.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 18 ноя 2018, 13:50 
Не в сети

Сообщения: 350
А где вы раньше были? Я бы был рад купить ваши заметки, если они понятны не только вам. Идея про завязку на книгу тоже может иметь смысл (хотя книгу скорее всего придётся украсть, но кто об этом парится?). Но на данный момент этот проект замораживается. Насчёт удастся или не удастся получить денег - ну я бы не стал так рано на вашем месте хоронить эту затею :) В вашем-то кругу понятно - у вас ни людей нет, ни денег. Только один Иван Денисов - он молодец, но он всего один. А вообще в России людей много, денег много. Если у меня с работой наладится, то может быть, что и доделаем. Исполнитель-то у нас есть (не из оберонщиков), правда, медленно работает, но качество хорошее.
Цитата:
Да и как вообще потом сопоставлять всю эту "документацию" с оригинальными исходниками?

Мы делаем форк. В текущем виде КП как язык программирования нам неинтересен, поэтому и надобности в сопоставлении не будет.
Цитата:
ЧитайОписаниеОбъектаИзСимвольногоФайлаВставьВОбластьИВерни

Ага. Я не знаю, что это за "область". Станет понятно по ходу дела и тогда, возможно, имя будет изменено.
Цитата:
А когда речь зашла ещё и про деньги на доработку этого

А вы не считайте деньги в чужом кармане. Хорошая зарплата - это 200, работы на неделю, 2 - коэффициент запаса. Правда, такие маленькие проекты никому не нужны, так что 2 - это даже не коэффициент запаса, а премиальный коэффициент за переработки. Если вы такой умный, то эти деньги могли бы быть ваши, но вы на данный момент опоздали. Будут деньги - я к вам зайду.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 18 ноя 2018, 14:04 
Не в сети

Сообщения: 350
SovietPony писал(а):
Ещё бесплатный хинт:
> расшифровываем коды ошибок и прописываем в виде комментария
Внезапно, есть Dev/Rsrc/Errors.odc. В рускоязычых сборках наверняка даже уже переведённый. А необходимость дублирования в комментариях весьма спорное действие.

Это деза, а не хинт. Магические константы - это Зло. Вместо всех этих циферек при генерации ошибки в конкретном месте исходника должны быть именованные константы. Именно это мы и сделали. То, что константы оформлены как комментарии - это временное явление. Можно ,к примеру, сделать модуль НкпКодыОшибок и проэкспортировать оттуда все эти числа, например, НеверныйСимвол100+ = 100.
И тогда будет вместо Ош(100) написано Ош(ко.НеверныйСимвол100+). Мы сделали ровно это, но пока не завели модуль с кодами ошибок, потому что мы стараемся отделить перевод от рефакторинга. В будущем 100 (* Неверный символ *) можно будет автоматически заменить на ко.НеверныйСимвол100.

А то, что вы проповедуете за сохранение магических констант - сильно не в вашу пользу. Бросает тень на вашу компетентность. Если в вашей вере магические константы приняты, то горе вам и богам вашим. В целом в культуре программирования этот вопрос давно решён и по нему нет двух мнений. Единственное, когда можно это оправдать - это если есть ограничения по суммарной длине исходных текстов. Но в нашем случае этих ограничений нет.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 19 ноя 2018, 03:03 
Не в сети
Аватара пользователя

Сообщения: 67
Откуда: Equestria
budden писал(а):
Идея про завязку на книгу тоже может иметь смысл (хотя книгу скорее всего придётся украсть, но кто об этом парится?)
Книжки Project Oberon 2013 и Compiler Construction можно абсолюто бесплатно сграбить с сайта самого Вирта. https://www.inf.ethz.ch/personal/wirth/
Они нужны только для понимания матчасти и базовых конструкций применяемых в компиляторе ББ, не велосипедить же ещё полкниги для документации? Ах да, готовое же на англицком, а ссылаться на книги даже с платным(?) переводом нельзя. Ну что поделать.
budden писал(а):
Мы делаем форк. В текущем виде КП как язык программирования нам неинтересен, поэтому и надобности в сопоставлении не будет.
Получается название темы не соответствует действительности. Должно быть "Переводить комментарии и идентификаторы в компиляторе <МойФорк>". Сразу бы все вопросы отпали, в том числе о пользе результатов работы кому-то ещё.
budden писал(а):
Если вы такой умный, то эти деньги могли бы быть ваши, но вы на данный момент опоздали. Будут деньги - я к вам зайду.
Нет, спасибо. Лучше сделай что бы было 48 часов в сутках и отсыпь побольше полезных знаний для всех.
budden писал(а):
Магические константы - это Зло.
Я не знаю что такое магические константы, но в КП это явно не магические числа. Коды ошибок ограничены аргументом одной процедуры и описаны в отдельном файле.
Я становился на грабли вида На Всё Дожлны Быть Именованные Константы будучи ещё школьником, сразу после того как стал на грабли в виде Именованные Константы Нинужны. В данном случае именованные константы не уместны, ящитаю. А дублировать комментариями, что и так удобно описано в Errors.odc, я не вижу смысла. Ну ничего, может подрастёшь когда-нибудь, поймёшь как я когда-то.
budden писал(а):
Если в вашей вере магические константы приняты, то горе вам и богам вашим.
Я вроде не похож монаха, только богу известно зачем переводящего исходники на русский язык.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 19 ноя 2018, 13:29 
Не в сети

Сообщения: 350
> а ссылаться на книги даже с платным(?) переводом нельзя
Конечно, нам нужен открытый источник, включая перевод. Но можно зажмуриться и сделать вид, что все купили эти книжки на русском языке. Хотя лично я предпочту побольше поработать, чем так делать. Тем более, что перевод в книжке, если он ссылается на исходник, то на англоязычный.

> Получается название темы не соответствует действительности.
Да, неувязочка выходит :roll: На самом деле, работа состоит из следующих этапов:

1. Форк без всяких изменений (уже сделан). При этом в той же сборке есть и старый компилятор, вопрос лишь в настройке меню.

2. Перевод на русский язык (в процессе)

3. Внесение нужных нам изменений (начато, но очевидно, что надо тормознуть. Пока только добавлена одна константа)

Вообще я не хотел отделять п.2. от п.3, но в связи с исчерпанием ресурсов придётся так сделать.
Считать ли рез-т п.2. полезным для «всех» или нет, я не знаю.

Цитата:
отсыпь побольше полезных знаний для всех.

Если тебе деньги не нужны, можешь подарить миру свои заметки. Так полезных для всех знаний станет больше.

Цитата:
Коды ошибок ограничены аргументом одной процедуры

Фактически - нет.

Цитата:
Я становился на грабли вида На Всё Дожлны Быть Именованные Константы будучи ещё школьником

Я уже подрос, теперь только деградировать могу. Ты выступаешь против общепризнанного. Может быть, ты и прав, но в чём конкретно грабли?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 19 ноя 2018, 18:48 
Не в сети
Аватара пользователя

Сообщения: 67
Откуда: Equestria
budden писал(а):
Если тебе деньги не нужны, можешь подарить миру свои заметки. Так полезных для всех знаний станет больше.
Я-то всё верну. Только для начала доделаю кодогенератор и разнюхаю всё важное, потому что даже в той заметке есть куски которые под вопросом и требуют уточнения. Тем более что эта заметка побочный продукт, а не самоцель (в отличии от данного проекта, если верить названию темы), да и не хочу я выбрасывать сырое, только на случай если забиваю.
budden писал(а):
Фактически - нет.
Ну ок. Кроме процедуры DevCPM.Mark есть ещё DevCPM.err, которая является сокращением первой. В нескольких модулях есть процедуры err, которые просто вызывают напрямую DevCPM.err. Где ещё коды ошибок используются, но не проходят напрямую через цепочку вызовов к DevCPM.Mark (т.е. код ошибки сохраняется где-то через поля в структурах или переменных)? Я, конечно, не изучал фонтэд досконально, но ни там где рылся, ни в бэкэде ничего подобного не видел.
Если всё же что-то такое есть, то это такая редкость, что там как раз уместен комментарий.
budden писал(а):
Может быть, ты и прав, но в чём конкретно грабли?
Читабельность ухудшается, в том числе из-за разбухания кода на пустом месте (туда же и русификация, и ДохераДлинныеИдентификаторы()).
budden писал(а):
Ты выступаешь против общепризнанного.
Я не против использования именованных констат. Я против их излишнего использования. Для даного случая аргументы я привёл. Если это общепризанная практика, то это херово, я скажу. В своём коде для себя ты можешь делать что хочешь, но я бы был категорически против таких модификций в официальной сборке или претендующих на таковую.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 19 ноя 2018, 19:33 
Не в сети

Сообщения: 350
Цитата:
потому что даже в той заметке есть куски которые под вопросом и требуют уточнения

Пометь их знаками вопроса и выкладывай. Люди, которые знают, подтянутся и прояснят твои вопросы. Либо на gitlab в виде репозитория, либо в гугл докс в виде текста. На Оберонкоре такие люди уже подтянулись. Да и сам ты тоже подтянулся в теме про VAL. Я это не корысти ради говорю, поскольку мы поставили этот проект на паузу и не знаю, когда к нему вернёмся. Это я тебе показываю путь, как получить (если повезёт) несколько бонусных часов, которые ты можешь сэкономить, привлекая других людей к созданию своей записки.
Цитата:
в отличии от данного проекта, если верить названию темы

Перевод компилятора имеет смысл сам по себе. Но является частью другой деятельности. Называть ли
это самоцелью - вопрос терминологии.
Цитата:
Где ещё коды ошибок используются

Я помню, что такое было, а где - фиг теперь найдёшь. Я его видел, когда сливал огромный дифф с сотнями изменений, это заняло большое время и повторять не хочу. Как найти его сейчас иначе, чем через этот дифф - не вижу. По идее это должно быть перечисление - тогда легко было бы найти, но в КП нет перечислений. Может быть, это и Mark. Но скорее всего, это что-то более специфическое. Просто поверь - оно есть.
Цитата:
Читабельность ухудшается

И всё?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 23 ноя 2018, 05:39 
Не в сети
Администратор
Аватара пользователя

Сообщения: 108
SovietPony, меня утешает то, что пока Денис занимается этим, он ведь разбирается в компиляторе потихоньку.

У меня вот есть желание тоже разобраться в компиляторе, но не хватает знаний и времени...

Меня немного раздражает небрежный подход Дениса, и также вульгарность в выборе названий. Но это всё мелочи по сравнению с тем, что ещё один человек вникнет в потроха Блэкбокса. Чем больше людей знаю про Оберон технологии, тем больше шанс, что после техногенного апокалипсиса люди смогут по крупицам восстановить технологический уровень XXI века :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 23 ноя 2018, 10:02 
Не в сети

Сообщения: 350
Получили поддержку на уровне "отдела работы с молодёжью" в одной серьёзной организации, будем пытаться просить денег. Вряд ли дадут, но просить нужно конкретную сумму. Отсюда вопрос: сколько просить и готов ли кто-нибудь сделать весь этот проект в сжатые сроки? Т.е. полностью расшифровать и перевести все аббревиатуры. Управлять проектом по прежнему буду я, так что вульгарность останется :) Мои прикидки - исполнитель должен получать 1000-1500 рублей в час (за меньшие деньги не удаётся заставить толковых людей работать в дополнение к тому, чем они уже сейчас заняты, а вакансии тут нет - это "проект", а не "работа", поэтому на полную ставку никого взять не получится).

Вопрос в трудоёмкости - я думаю, это порядка 200-300 часов. Т.е. правильно, что нужно просить 200-300 тыр?


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club