Страница 1 из 1

вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 22.04.21 22:56
БудДен
Долго думал, как перевести элемент дерева синт. разбора, в который превращается слово цел32 вот в этом куске кода:

Код: Выделить всё

перем А: цел32;
В лисокомпиляторе оно называется просто Type и это сбивает с толку, потому что есть как минимум три претендента на это название:

А. Запись о том, что тип цел32 вообще существует, компилятор использует её, например, для проверки, что тип переменной задан правильно
Б. Объявление типа, т.е. то место, где этот тип определён. Для цел32 такого места нет, а для какого-нибудь Reader - это конкретное место в тексте. В компиляторе это называется TypeDeclaration
В. Слово цел32 в данном куске текста, т.е. кусок текста, который обращается к этому типу по его имени.

В лисокомпиляторе вариант (В) назвается Type, но логично было бы назвать этим словом вариант (А). Я думал-думал и ничего не придумал лучше, как называть вариант (В) "обращение к типу". У него есть наследники, например, "обращение к типу запись" и т.п. Поскольку это очень часто встречаемое в компиляторе слово, решился его сократить и получилось ОбращКТипу.

До этого хотел назвать "упоминание типа", но это недостаточно правильно, потому что тип не просто упоминается, а используется для какой-то цели. Можно, кстати, "использование типа", но оно так хорошо не сокращается. Так же был "вызов типа", но это тоже сбивает с толку, потому что тип не исполняется и вызвать в собственном смысле слова его нельзя.

Есть какие-то альтернативные предложения?

У меня, правда, есть подозрение, что на самом деле Type может сочетать в себе (В) и (А). Как минимум, по той причине, что у TypeDeclaration есть поле declaredType, в котором и хранятся данные о том типе, который был определён. Т.е. когда мы пишем

Код: Выделить всё

тип МойТип = цел32;
то объект TypeDeclaration будет создан для всего выражения "МойТип = цел32", а вот поле declaredType будет содержать в себе "МойТип", вместе с его определением и в этом случае совокупность из TypeDeclaration и Type в поле declaredType будет выполнять роль (А).

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 23.04.21 12:17
MihalNik
Тут надо думать, о том, чтобы название соотносилось с веткой дерева.
А поскольку ветки действий названы предписаниями, то можно попробовать что-то вроде "ПредписанныйТип" или "ПредписаниеТипа".

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 23.04.21 16:17
БудДен
Там в дереве много видов веток (хотя я бы их всё же назвал "узлами", но может и "ветки" лучше подойдут, не путать с ветками операторов if, case и проч). Предписаниями названы только императивные "операторы", например, if, while или "оператор вызова процедуры". Есть также узел "десигнатор" (обращение к "месту"), обращение к типу, объявление процедуры, переменной или типа, выражение - всё это тоже узлы дерева. Собственно, вот код определения шаблона "посетитель" - там, я думаю, они все перечислены:

https://gitlab.com/budden/ja-o-s/-/blob ... ee.Mod#L78

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 06.05.21 16:28
БудДен
Ещё один вариант именований:

https://gitlab.com/budden/ja-o-s/-/blob ... ора-лис.md

Boolean
род типа «булево»
ОбращКТИзРодаБулева

Set
род типов байтов
ОбращКТИзРодаБайтов

Character
род типов литер (пока что только один представитель, но планируем расширять)
ОбращКТИзРодаЛитер

Range
род типов диапазонов (отдельными экземплярами являются диапазоны с разными границами)
ОбращКТИзРодаДиапазонов

Number
род типов чисел(содержит в себе только роды типов, например, род типов целых чисел)
ОбращКТИзРодаЧисел

Integer
род типов целых чисел
ОбращКТИзРодаЧиселЦел

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 06.05.21 16:34
БудДен
Вообще похоже, что придумывать эти термины - это как стихи переводить. Названия в A2 выглядят как слова в стихах - вроде имеют отношение к тому смыслу, который хотят передать, но отдалённое. Ограничение на размер подобно ограничению на рифму. В общем, получается какая-то задача глобальной оптимизации по критериям (точность, краткость и исконность), которые зависят от настроения. Так и в 10 лет не уложишься.

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 06.05.21 17:36
БудДен
И тут до меня дошло, что это, наверное, надо называть ВыражениеТипа, а не ОбращениеКТипу.

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 06.05.21 21:48
БудДен
Или, точнее, выражениеˉтип. А обычное выражение - это выражениеˉзначение.

Re: вхождение типа в текст (Type) = Обращ(ение)КТипу

Добавлено: 07.05.21 00:14
БудДен
Набросал варианты перевода всех типичных сущностей в синт.дереве:

https://gitlab.com/budden/ja-o-s/-/blob ... ы-подумать