OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 05:00

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 15:56 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Изучая книгу Compiler Construction обратил внимание, на методы работы с процедурами OpenScope и CloseScope в парсере языка Oberon-0. Оттуда следовало, что в процедуре можно описать переменную, совпадающую с именем самой процедуры. Попробовал написать тестовый примерчик, скомпилировалось, более того, можно описывать переменную, совпадающую с именем модуля, внутри модуля.
Код:
MODULE TestMod3;

   VAR TestMod3: INTEGER;
   
   PROCEDURE ProcName*;
   VAR ProcName: PROCEDURE;
   BEGIN
      ProcName;
   END ProcName;

END TestMod3.


Так было задумано в описании языка?
Или это просто особенность реализации конкретного компилятора? (Если это так, то я бы назвал это багом)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 17:06 

Зарегистрирован: Четверг, 23 Апрель, 2009 18:01
Сообщения: 219
In my humble opinion, это скорее непродуманная реализация. Переопределив идентификатор с именем модуля/процедуры, мы теряем к ним доступ. И если к процедуре ещё можно обратиться ИмяМодуля.ИмяПроцедуры, то к модулю уже нет.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Это определение языка. Никакой случайности или ошибки тут нет.


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

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


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

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


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

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