Автор Тема: Question list regarding to Oberon-07 report (to be clarified by Wirth)  (Прочитано 3822 раз)

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Question list regarding to Oberon-07 report (to be clarified by Wirth)
« : Февраль 13, 2013, 05:19:39 pm »
I suggest to collect here the questions not covered by original language report (mostly raised during implementation of Oberon-07 compiler). Later this list will be used to ask Wirth for clarification.

1. Report revision 22.9.2011. ARRAY or RECORD as a value parameter. Original report quote: "If a value parameter is structured (of array or record type), no assignment to it or to its elements are
permitted."
What about pointer elements/fields? Is it possible to change records pointed by array elements or record fields. E.g.:
PROCEDURE p(record: RecordType);
...
record.pointer.field := 123;

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #1 : Февраль 13, 2013, 10:03:46 pm »
Непосредственно на форуме вести список не очень удобно, поэтому список здесь: https://sites.google.com/site/oberonreport/question-list-regarding-to-oberon-07-report-to-be-clarified-by-wirth
А обсуждать можно тут.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #2 : Март 01, 2013, 09:28:03 pm »
Области видимости не описаны никак. Написано только, что они есть. В частности допустимо ли перекрытие имени переменной уровня модуля именем уровня процедуры. Ну и более тонкие моменты, типа имя процедуры vs имена аргументов vs имя модуля и т.д.
И примерно в эту же кассу - можно ли использовать имя текущего модуля для снятия неопределенности.

DddIzer

  • Гость
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #3 : Март 03, 2013, 04:14:13 pm »
Области видимости не описаны никак. Написано только, что они есть. В частности допустимо ли перекрытие имени переменной уровня модуля именем уровня процедуры. Ну и более тонкие моменты, типа имя процедуры vs имена аргументов vs имя модуля и т.д.
И примерно в эту же кассу - можно ли использовать имя текущего модуля для снятия неопределенности.
мельчите Vlad - не понятны проблемы ..  локальное перекрывает глобальное, идентификаторы одного уровня - должны быть уникальны - а вот насчет имени модуля  для доступа к глобальным (уровня модуля) идентификаторам, действительно, непонятки..

DddIzer

  • Гость
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #4 : Март 03, 2013, 04:21:41 pm »
.. но есть 95 процентная уверенность, что нельзя ( согласно общим принципам.. доступ к глобальным идентификаторам относительно текущей локальной области видимости - в оберонах она может реализоваться только  в подпрограммах) - относительно  безопасен только при явной передачи их в параметрах подпрограмм...

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #5 : Март 04, 2013, 09:49:49 pm »
мельчите Vlad - не понятны проблемы ..  локальное перекрывает глобальное,

В джаве, например, нет такого перекрытия - ошибка компиляции. С чем-то боролись. Хотя я вот не помню ошибок из-за такого перекрытия в плюсах. Я не могу однозначно высказаться "за" или "против".

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #6 : Март 04, 2013, 10:13:48 pm »
мельчите Vlad - не понятны проблемы ..  локальное перекрывает глобальное, идентификаторы одного уровня - должны быть уникальны

И все-таки хочу обратить внимание на конкретный тонкий момент: имя процедуры - оно в какой области видимости? Обязано быть в области видимости модуля. С другой стороны, если пользоваться твоей логикой (локальное перекрывает глобальное) - то можно иметь аргументы и локальные переменные с таким же именем как и у процедуры... Или же имя процедуры входит и туда и сюда...

DddIzer

  • Гость
Re: Question list regarding to Oberon-07 report (to be clarified by Wirth)
« Ответ #7 : Март 05, 2013, 04:44:32 am »
мельчите Vlad - не понятны проблемы ..  локальное перекрывает глобальное, идентификаторы одного уровня - должны быть уникальны

И все-таки хочу обратить внимание на конкретный тонкий момент: имя процедуры - оно в какой области видимости? Обязано быть в области видимости модуля. С другой стороны, если пользоваться твоей логикой (локальное перекрывает глобальное) - то можно иметь аргументы и локальные переменные с таким же именем как и у процедуры... Или же имя процедуры входит и туда и сюда...
Да,  можно и она будет перекрывать внешнюю (чего тут особенного?)..  один нюанс.. под идентификатором процедуры понимается полная ее сигнатура.. так, что локальные переменные с таким же названием исключаются. Доступ к внешней процедуре уровня модуля,  через полный квалификатор (имя модуля), доступ к  переменной уровня модуля через локальное окружение - также..