OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 15:53

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 02 Август, 2020 17:35 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Предлагаю уважаемым коллегам покрутить идею о том, чтобы разрешить объявлять ABSTRACT, EMPTY и предобъявления ^ в секции деклараций, до секции процедур. Это вообще не должно оказать никакого влияния на процесс компиляции (вроде бы).

Но даст возможность ликвидировать текущее формалистическое насилие над смысловой группировкой.
Когда декларация даже абстрактного интерфейса разорвана на два места (сам тип и его набор методов).

А дать возможность определять и ^-предобъявления позволит в крупных модулях выполнить сначала предобъявление групп процедур, например - аналог interface-секции в других Pascal-языках. Но не обязательной.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Август, 2020 15:31 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 660
Илья, я вот тут крутил-крутил вашу идею, и у меня вопрос: какую вы хотите решить задачу такими изменениями? Или конкретнее: про какую смысловую группировку говорите? Для чего может потребоваться делать секцию VAR или TYPE после нескольких ABSTRACT процедур? Дайте, пож, простой пример, как бы вы хотели.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Август, 2020 22:32 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Кажется, эта тема всплывает регулярно. Но выделять ABSTRACT, EMPTY и предобъявления как-то вычурно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 13 Август, 2020 21:29 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
adimetrius писал(а):
Дайте, пож, простой пример, как бы вы хотели.


Хотелось бы убрать смысловой разрыв, когда тип данных определён в одном месте, а его процедурный интерфейс - в другом.

Хотелось бы так:

Код:
TYPE
  View = POINTER TO ABSTRACT RECORD (Views.View) END;

    PROCEDURE (v: View) Restore (f: Views.Frame, l, t, r, b: INTEGER), NEW, ABSTRACT;
    PROCEDURE ^ (v: View) HandleCtrlMsg (f: Views.Frame; VAR msg: Views.CtrlMsg; VAR focus: Views.View), NEW;
    PROCEDURE ...

TYPE
  Context = ...
 
    PROCEDURE ...



Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 19 Октябрь, 2020 22:13 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Подниму тему - к дальнейшему обсуждению.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB