Ada_Ru форум

Обсуждение языка Ада

scope (with/use)

Оставить новое сообщение

Сообщения

Oleksandr Havva
scope (with/use)
2003-03-28 12:17:25

hi,

КОНЦЕПТУАЛЬНЫЙ ВОПРОС!!!

во всех адских буках with и use обзывают

как спецификаторы контекста

в описаниях/буках по другим языкам программирования

вместо понятия "контекст" используется понятия

"область действия" и "область видимости",

и, imho, это более ясно отображает смысл

что если использовать следующие обзывательства:

with ---> спецификатор _области_видимости_

use ---> спецификатор _области_действия_

use type ---> спецификатор _области_действия_[типа]_

а от использования "контекст" отказаться

мне кажется, что так будет лучше, понятнее

и "ближе к людям" :)

...хотя и придется вылавливать "контекст" по всему тексту

Alex

Oleksandr Havva wrote:

 

во всех адских буках with и use обзывают

как спецификаторы контекста

 

Разрешите сделать предложение:

 

with - спецификатор _контекста_

use - спецификатор _раскрытия_видимости_

use type - спецификатор _раскрытия_видимости_типа_

 

 

Vadim Godunko wrote:

 

Oleksandr Havva wrote:

 

во всех адских буках with и use обзывают

как спецификаторы контекста

 

Разрешите сделать предложение:

 

with - спецификатор _контекста_

use - спецификатор _раскрытия_видимости_

use type - спецификатор _раскрытия_видимости_типа_

 

Я бы поддержал!

в описаниях/буках по другим языкам программирования

вместо понятия "контекст" используется понятия

"область действия" и "область видимости",

и, imho, это более ясно отображает смысл

 

что если использовать следующие обзывательства:

with ---> спецификатор _области_видимости_

 

В Аде есть понятие declarative region. Очень близко к

области видимости. Видимость же на уровне межмодульных

связей определяется все-таки по-другому, на нее есть

специальная глава в RM:

 

10.1.6 Environment-Level Visibility Rules

 

Так что я бы явно разделил русские термины.

 

use ---> спецификатор _области_действия_

 

Опять же, вариант Вадима позволяет не путать со scope.

 

use type ---> спецификатор _области_действия_[типа]_

 

Ну, если использовать предложение Вадима, то целиком!

hi,

Vadim Godunko wrote:

Oleksandr Havva wrote:

>

во всех адских буках with и use обзывают

как спецификаторы контекста

>

Разрешите сделать предложение:

>

with - спецификатор _контекста_

use - спецификатор _раскрытия_видимости_

use type - спецификатор _раскрытия_видимости_типа_

В принципе, нечто подобное уже традиционно используется

всеми адскими апологетами:

with ---> спецификатор совместности контекста

use ---> спецификатор использования контекста

И похоже, что ты не врубился в суть идеи переобзывательства :(

(возможно, другие товарисчи тоже)

Я полностью согласен с тем, что это устоялось в адских книжках

и всем присутствующим это ясно и понятно но...

Помниться, когда я сам только начинал ковыряться с Адой,

то чтобы врубиться в смысл этих изречений

понадобилось некоторое время, а это не радует

Знач, вторая попытка

Все это крутится вокруг "scope rules".

"scope rules" присутствует не только в Аде,

но и в других языках программирования.

Отличие Ады в том, что она различает

"видимость" и "непосредственную доступность" сущности.

Что делает "with"?

Он расширяет "область видимости",

т.е. если у нас есть модуль Unit_A,

в котором описано Some_A,

то мы _НЕ_ можем обратиться/использовать

Some_A из модуля Unit_B, пока в модуле Unit_B

не _расширим_ "область видимости"

с помощью: "with Unit_A"

Только после этого Some_A будет доступно

с помощью полной точечной нотации,

то есть оно теперь _видимо_ из модуля Unit_B

(приватность не трогаем)

Что делает "use"?

Он позволяет непосредственно обратиться/использовать

Some_A из модуля Unit_B, без точечной нотации.

то есть "use" вводит сущности модуля Unit_A

в непосредственную "область действия" модуля Unit_B.

теперь идея понятна???

кстати, заметку товарища Рыбина я уже тоже прочитал

и пока не вижу, чтобы такой подход _противоречил_

понятию "declarative region" или тому, что написано

в RM ("10.1.6 Environment-Level Visibility Rules"),

или вносил какие-либо неоднозначности(!)

наоборот. мне кажется, что так яснее выразить различия

"видимости" и "непосредственной доступности"

в описаниях/буках по другим языкам программирования

вместо понятия "контекст" используется понятия

"область действия" и "область видимости",

и, imho, это более ясно отображает смысл

>

что если использовать следующие обзывательства:

with ---> спецификатор _области_видимости_

use ---> спецификатор _области_действия_

use type ---> спецификатор _области_действия_[типа]_

>

а от использования "контекст" отказаться

>

мне кажется, что так будет лучше, понятнее

и "ближе к людям" :)

>

...хотя и придется вылавливать "контекст" по всему тексту

>

Alex

Alex

Oleksandr Havva wrote:

 

ну тогда "общее" название для with и use - спецификаторы контекста

 

with - спецификатор _видимости_

use - спецификатор _непосредственной_доступности_

use type - спецификатор _непосредственной_доступности_типа_

 

А может раскрытия/открытия непосредственной доступности.

hi,

Vadim Godunko wrote:

Oleksandr Havva wrote:

>

ну тогда "общее" название для with и use - спецификаторы контекста >

with - спецификатор _видимости_

use - спецификатор _непосредственной_доступности_

use type - спецификатор _непосредственной_доступности_типа_

>

А может раскрытия/открытия непосредственной доступности.

похоже, что меня "контекст" напрягает, а тебя "область"

:)))

Alex

Oleksandr Havva wrote:

 

ну тогда "общее" название для with и use - спецификаторы контекста

 

with - спецификатор _видимости_

use - спецификатор _непосредственной_доступности_

use type - спецификатор _непосредственной_доступности_типа_

 

А может раскрытия/открытия непосредственной доступности.

 

 

похоже, что меня "контекст" напрягает, а тебя "область"

 

Я не против "области". Но использовать "доступность" без уточнения - тоже не хорошо.

 

 

Vadim Godunko wrote:

 

Oleksandr Havva wrote:

 

>ну тогда "общее" название для with и use - спецификаторы контекста

>with - спецификатор _видимости_

>use - спецификатор _непосредственной_доступности_

>use type - спецификатор _непосредственной_доступности_типа_

 

>А может раскрытия/открытия непосредственной доступности.

 

 

похоже, что меня "контекст" напрягает, а тебя "область"

 

Я не против "области". Но использовать "доступность" без уточнения - тоже не хорошо.

 

А меня напрягает "видимость" в связи со спецификатором with! И - сильно напрягает!

Hello!

 

On Sat, 29 Mar 2003, Sergey I. Rybin wrote:

 

>ну тогда "общее" название для with и use - спецификаторы контекста

>with - спецификатор _видимости_

>use - спецификатор _непосредственной_доступности_

>use type - спецификатор _непосредственной_доступности_типа_

 

>А может раскрытия/открытия непосредственной доступности.

 

 

похоже, что меня "контекст" напрягает, а тебя "область"

 

Я не против "области". Но использовать "доступность" без уточнения - тоже не хорошо.

 

А меня напрягает "видимость" в связи со спецификатором with! И - сильно напрягает!

 

В упор не могу понять, чем не подходит "спецификатор использования" для "use"?

Sincerely yours Cyril Sazonov

hi,

"Sergey I. Rybin" wrote:

Vadim Godunko wrote:

>

Oleksandr Havva wrote:

>

>ну тогда "общее" название для with и use - спецификаторы контекста >

>with - спецификатор _видимости_

>use - спецификатор _непосредственной_доступности_

>use type - спецификатор _непосредственной_доступности_типа_

>

>

А меня напрягает "видимость" в связи со спецификатором with! И - сильно напрягает!

а популярно объяснить можно?

Alex

А меня напрягает "видимость" в связи со спецификатором with! И - сильно напрягает!

 

а популярно объяснить можно?

 

Так я ж объяснил! Или опять письма пропадают??? :(((

 

Дело в том, что для компилируемых модулей стандарт определяет свои собственные правила видимости (10.1.6). В конечном итоге они сводятся к той "обычной" видимости, что описана в главе 8 (куда им деваться!), но для меня принципиальный

момент в том, как именно сводятся. И как устроена видимость в самих спецификациях with и use, которые пропадают после того, как многомодульная программа преобразована в эквивалентную программу-монолит.

 

Поэтому при переводе with clause я бы постарался отразить эту РАЗНИЦУ, а не сводить на уровне терминов описание МЕЖМОДУЛЬНЫХ СВЯЗЕЙ к ОБЫЧНОЙ видимости. with clause описывают, СОВМЕСТНО С КАКИМИ другими модулями (или - В КОНТЕКСТЕ каких других модулей должен компилироваться данный модуль. Она именно и в первую очередь про это, а уж потом, путем различных трансформаций, применения "as if" подхода и рассмотрения некой абстрактной environmrent task мы переходим собственно к видимости.

 

Именно поэтому я обеими руками за "спецификацию контекста".

"Sergey I. Rybin" wrote:

А меня напрягает "видимость" в связи со спецификатором with! И - сильно напрягает!

>

а популярно объяснить можно?

>

Так я ж объяснил! Или опять письма пропадают??? :(((

письма не пропадают :)

...но вот с первого раза я не врубился,

что меня слегка "унесло" в рассуждениях :(

эту тему надо оставлять "as is",

а то получится, что "лучшее - враг хорошего"

Alex

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти