OberonCore https://forum.oberoncore.ru/ |
|
Разрешить произвольный порядок объявлений в модуле? https://forum.oberoncore.ru/viewtopic.php?f=29&t=5963 |
Страница 2 из 2 |
Автор: | prospero78 [ Пятница, 02 Декабрь, 2016 15:58 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Александр Ильин писал(а): prospero78 писал(а): ... Поле динамических состояний множества констант равно нулю. В рамках предложенного мною методического предположения)) Во втором коде одна из констант содержит такую ошибку, которая невозможна в первом.Для первого варианта -- поле динамических состояний множества констант равно нулю. В рамках предложенного мною методического предположения)) Приведённая ошибка -- это дисциплина программирования. С методикой, частично, пересекается, но всё же во втором варианте -- это примат "человеческого фактора", а не методики. Методика сужает поле ошибок человека, но не обнуляет. За человеком последнее слово. Методику и человека надо разделять )) |
Автор: | Александр Ильин [ Пятница, 02 Декабрь, 2016 16:04 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Comdiv писал(а): Вообще невозможна? Это другая ошибка.
|
Автор: | ilovb [ Воскресенье, 04 Декабрь, 2016 17:16 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Илья Ермаков писал(а): Вообще, одно из напрягающих мест КП - это когда определение целостной абстракции (тип данных, константы, операции - методы и просто процедуры) разорваны "географически". Ты хочешь писать на Go. Просто еще не осознал |
Автор: | Иван Денисов [ Воскресенье, 04 Декабрь, 2016 17:54 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Илья Ермаков писал(а): Не-не, я про Оминк упомянул то, что они в ББ в Соглашениях об оформлении кода не рекомендовали даже CONST-TYPE-VAR перемешивать. Ну, например, разумно объявлять константы перечислений рядом с типом или переменной, для которой они заводятся. А у них оно всё одной секцией CONST. Илья, никто не запрещает константы объявлять внутри процедуры... |
Автор: | prospero78 [ Воскресенье, 04 Декабрь, 2016 18:48 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
ilovb писал(а): Ты хочешь писать на Go. Просто еще не осознал Заклинаю, изыди!!! Порядок объявления надо оставить как есть. Привязка методов к типам делать через размещение типа в том же модуле, что и процедуры для работы с типом. Надеюсь, указание типа первым параметром в процедуре это не извращение?))) |
Автор: | Oleg N. Cher [ Воскресенье, 04 Декабрь, 2016 19:28 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Александр Ильин писал(а): Код: CONST MaxNum = 15; TYPE Elements: ARRAY MaxNum OF INTEGER; Из нашего обсуждения мне в целом ясно, что порядок определения типов и констант должен быть произвольным. |
Автор: | Илья Ермаков [ Воскресенье, 04 Декабрь, 2016 21:19 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Иван Денисов писал(а): Илья, никто не запрещает константы объявлять внутри процедуры... Так речь не про внутри процедуры... А есть про константы, которые предназначены для использования с конкретным типом... И т.п. Кстати, связанный момент. В ББ напрягает то, что символьный файл не сохраняет порядок объявлений. И тупо сортирует по алфавиту. Это делает DEFINITION малоприменимым в куче случаев. Т.е. он становится применимым только после ручного упорядочивания и группировки и вставки в таком виде в документацию. |
Автор: | prospero78 [ Понедельник, 05 Декабрь, 2016 08:44 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Хм. Мне кажется вопрос об алфавитности меркнет, если вспомнить, что среда сама формирует файл определений, следит за согласованность и т. п. По крайней мере я не замечал, чтобы меня это как-то отвлекало... |
Автор: | Илья Ермаков [ Понедельник, 05 Декабрь, 2016 11:09 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Порядок определений в модуле всегда несёт некую семантику. Соответственно, компилятор должен добавлять в символьный файл информацию о семантическом порядке, использованном программистом. А дальше уже при показе DEFINITION можно переключаться между алфавитным порядком и исходным семантическим порядком. |
Автор: | Александр Ильин [ Понедельник, 05 Декабрь, 2016 11:48 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Илья Ермаков писал(а): А дальше уже при показе DEFINITION можно переключаться между алфавитным порядком и исходным семантическим порядком. А там разве не сохраняется позиция объявления в исходном файле? Насколько я понимаю, для процедур точно сохраняется (см. переход к исходному тексту в trap viewer). Можно сортировать по этому полю.
|
Автор: | Илья Ермаков [ Понедельник, 05 Декабрь, 2016 16:46 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Так это не в символьном, а в кодовом, даже не в метаинформации, а в отладочной информации (Ref-функции Kernel). |
Автор: | Александр Ильин [ Понедельник, 05 Декабрь, 2016 18:30 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Илья Ермаков писал(а): Так это не в символьном, а в кодовом, даже не в метаинформации, а в отладочной информации (Ref-функции Kernel). А, ну тогда понятно.В символьный файл не сложно добавить при желании - хоть бы и отдельной таблицей. |
Автор: | Trurl [ Среда, 13 Декабрь, 2017 12:45 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Илья Ермаков писал(а): Порядок определений в модуле всегда несёт некую семантику. Соответственно, компилятор должен добавлять в символьный файл информацию о семантическом порядке, использованном программистом. Тут фишка в том, что символьный файл не должен меняться, если интерфейс модуля не изменился. А изменение порядка определений не меняет интерфейс. |
Автор: | Илья Ермаков [ Пятница, 15 Декабрь, 2017 13:40 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Ну у нас фингерпринты в символьном файле есть для этого для каждой сущности. Они не меняются. А сам файл физически пусть меняется - ничего страшного. |
Автор: | Trurl [ Воскресенье, 17 Декабрь, 2017 11:53 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Да, но время создания симфайла может быть единственным критерием необходимости перекомпиляции импортирующих модулей. (Это я не про ББ, а про системы, в которых есть аналог make). |
Автор: | Илья Ермаков [ Воскресенье, 17 Декабрь, 2017 14:45 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Ну тогда перемена местами деклараций даст такой же эффект, как, например, добавление новой процедуры (без ломки старых). Нормально. Я поработал с исходником, не ломая обратную совместимость - что новое добавил, что старое местами поменял. |
Автор: | Trurl [ Воскресенье, 17 Декабрь, 2017 14:53 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
А потом скопилировал и символьный файл обновился. Теперь надо все зависимые модули перекомпилировать. На самом деле не надо, но как система об этом узнает? |
Автор: | Илья Ермаков [ Воскресенье, 17 Декабрь, 2017 17:39 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Стоп, ну общий-то отпечаток модуля не меняется. На дату ориентироваться, как бы, ненадёжно в принципе. |
Автор: | Trurl [ Воскресенье, 17 Декабрь, 2017 21:24 ] |
Заголовок сообщения: | Re: Разрешить произвольный порядок объявлений в модуле? |
Сейчас отпечаток модуля не меняется благодаря тому, что все объекты отсортированы. Можно, конечно, сортировать отдельно, специально для расчета отпечатка. Но главное, система сборки должна искать эти отпечатки и сравнивать. Пока таких, вроде, не существует. Ну, то есть, в принципе все решаемо, но поработать придется. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |