OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 13 Октябрь, 2024 01:55

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Псевдомим модуля при импорте.
СообщениеДобавлено: Пятница, 23 Сентябрь, 2022 15:45 

Зарегистрирован: Пятница, 07 Май, 2021 11:06
Сообщения: 30
Оберон допускает, при импорте модуля, указать псевдоним. В описании Оберон 2 указано, что это позволяет использовать короткие имена. Для чего ещё это может быть нужно и можно ли обойтись без этого?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Пятница, 23 Сентябрь, 2022 15:48 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3798
JackKatch писал(а):
Оберон допускает, при импорте модуля, указать псевдоним. В описании Оберон 2 указано, что это позволяет использовать короткие имена. Для чего ещё это может быть нужно и можно ли обойтись без этого?


Вот одно из самых классных применений этого свойства помимо сокращения кода для удобочитаемости.
https://software.openbrace.org/boards/16/topics/33

Код:
MODULE Test;

IMPORT S1 := Stack (INTEGER, 100), S2 := Stack (REAL, 100);

BEGIN
    S1.Push (0);
    S2.Push (3.14);
END Test.


Однако это поддерживает только один компилятор конкретный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Суббота, 24 Сентябрь, 2022 00:56 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1451
Откуда: Киев
Код:
MODULE Module;

IMPORT O := Out;

PROCEDURE Out*; END Out;

END Module.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 00:35 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2460
Откуда: Россия, Томск
Pseudo-meme.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 09:29 

Зарегистрирован: Пятница, 07 Май, 2021 11:06
Сообщения: 30
Почему такой вопрос возник. В "Построение компиляторов" стр. 148 есть следующее замечание: "Хотя использование псевдонимов является редкостью, опредаление языка, к сожалению, допускает их." Так вот хотелось бы понять, это такой оборот речи, что вот мол компилятор усложняется или автор действительно считает этот механизм не нужным. Пока что складывается впечатление, что без псевдонимов можно обойтись.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 09:44 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3798
JackKatch писал(а):
Почему такой вопрос возник. В "Построение компиляторов" стр. 148 есть следующее замечание: "Хотя использование псевдонимов является редкостью, опредаление языка, к сожалению, допускает их." Так вот хотелось бы понять, это такой оборот речи, что вот мол компилятор усложняется или автор действительно считает этот механизм не нужным. Пока что складывается впечатление, что без псевдонимов можно обойтись.


Практический специалист не может без них обойтись. Это сделало бы код сложночитаемым.

Вот пример из реальной программы:

Код:
   IMPORT SYSTEM, MCU := MicroSTM32F4, ARMv7M := MicroARMv7M,
      Traps := MicroARMv7MTraps, 
      TPs := MicroSTM32F4TPorts,
      Pins := MicroSTM32F4Pins,
      Sys := MicroSTM32F4System,
      SysTick0 := MobxARMv7MSTM32SysTick0,
      PWM, Counter, Leds,
      MicroKernel0,
      ADC := MicroSTM32F4ADC1,
      I2C1 := MicroSTM32F4I2C1Bus,
      ADS1115 := Digitaladc1115;


Альтернативные реализации оптимизированных модулей также возможно подключать для тестирования, не меняя код. Скажем MicroSTM32F4I2C1Bus заменяется на MicroSTM32F4I2C1BusReduced, и проверяется, всё ли функционирует корректно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 11:16 

Зарегистрирован: Пятница, 07 Май, 2021 11:06
Сообщения: 30
Я понял, что на практике читабельность кода может сильно пострадать, без псевдонимов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 20:28 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1451
Откуда: Киев
Иван Денисов писал(а):
Вот пример из реальной программы:
Здесь, скорее, проглядывает потребность в иерархизации, и псевдонимы применяются по недостатку более подходящего механизма.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 20:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3798
Comdiv писал(а):
Иван Денисов писал(а):
Вот пример из реальной программы:
Здесь, скорее, проглядывает потребность в иерархизации, и псевдонимы применяются по недостатку более подходящего механизма.

Ну и хорошо. Чем меньше механизмов, тем проще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 20:55 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1451
Откуда: Киев
Чем меньше или как в Обероне? Можно предложить Оберон как критерий хорошести :lol: . Хотя чего предлагать, многие давно его так и используют.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 21:10 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3798
Comdiv писал(а):
Чем меньше или как в Обероне? Можно предложить Оберон как критерий хорошести :lol: . Хотя чего предлагать, многие давно его так и используют.

Зрите в корень! Фёдор Васильевич не даром сравнивал Оберон с десятичной системой исчисления. Юрг Гуткнехт также сказал, что больше нет перспектив в развитии языков программирования.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Воскресенье, 25 Сентябрь, 2022 23:34 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1451
Откуда: Киев
Но я надеюсь, что Вы всё же начали использовать шестнадцатеричную систему счисления, когда это полезно, тем более, она в Обероне есть. И надеюсь, что воспользуетесь любой другой в случае необходимости, пусть её и нет в Обероне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Вторник, 27 Сентябрь, 2022 09:05 

Зарегистрирован: Пятница, 11 Январь, 2019 21:33
Сообщения: 92
JackKatch писал(а):
Почему такой вопрос возник. В "Построение компиляторов" стр. 148 есть следующее замечание: "Хотя использование псевдонимов является редкостью, определение языка, к сожалению, допускает их." Так вот хотелось бы понять, это такой оборот речи, что вот мол компилятор усложняется или автор действительно считает этот механизм не нужным. Пока что складывается впечатление, что без псевдонимов можно обойтись.
В Modula-3, наследнике Виртовской Modula-2, используется. И успешно.
Не уверен, что только лишь для улучшения читаемости исходных кодов.
Возможно, полезно при применинии generic-ов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Псевдомим модуля при импорте.
СообщениеДобавлено: Суббота, 31 Декабрь, 2022 12:32 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 304
Откуда: Russia
Тскже, это позволяет менять импортированный модуль, меняя его имя лишь в одном месте. Например, мы использовали модуль String, который реализует поддержку строк ascii, потом мы переключили на использование unicode : import String := UnicodeString


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

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


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

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


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

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