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

Переводим термины и придумываем новые, в т.ч. для ЯОС
Ответить
БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

вхождение типа в текст (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 будет выполнять роль (А).

MihalNik
Сообщения: 226
Зарегистрирован: 05.11.18 11:02

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

Сообщение MihalNik » 23.04.21 12:17

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

БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

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

Сообщение БудДен » 23.04.21 16:17

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

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

БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

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

Сообщение БудДен » 06.05.21 16:28

Ещё один вариант именований:

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

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

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

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

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

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

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

БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

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

Сообщение БудДен » 06.05.21 16:34

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

БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

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

Сообщение БудДен » 06.05.21 17:36

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

БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

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

Сообщение БудДен » 06.05.21 21:48

Или, точнее, выражениеˉтип. А обычное выражение - это выражениеˉзначение.

БудДен
Сообщения: 1844
Зарегистрирован: 07.10.18 14:01

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

Сообщение БудДен » 07.05.21 00:14

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

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

Ответить