OberonCore https://forum.oberoncore.ru/ |
|
Описание переменных, совпадающих с именем процедуры https://forum.oberoncore.ru/viewtopic.php?f=29&t=2549 |
Страница 1 из 1 |
Автор: | Rifat [ Понедельник, 12 Апрель, 2010 15:56 ] |
Заголовок сообщения: | Описание переменных, совпадающих с именем процедуры |
Изучая книгу 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 ] |
Заголовок сообщения: | Re: Описание переменных, совпадающих с именем процедуры |
In my humble opinion, это скорее непродуманная реализация. Переопределив идентификатор с именем модуля/процедуры, мы теряем к ним доступ. И если к процедуре ещё можно обратиться ИмяМодуля.ИмяПроцедуры, то к модулю уже нет. |
Автор: | Info21 [ Понедельник, 12 Апрель, 2010 18:23 ] |
Заголовок сообщения: | Re: Описание переменных, совпадающих с именем процедуры |
Это определение языка. Никакой случайности или ошибки тут нет. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |