Ещё раз о типах и значениях

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

Ещё раз о типах и значениях

Сообщение БудДен » 25.04.21 15:15

Совсем уж барахтаюсь в этом.

ТипЧислаЦелого или ТипЧислоЦелое или ТипЦелое?

"Значение,ИзвестноеВоВремяКомпиляцииТипаЧислаЦелого" или

"Значение,ИзвестноеВоВремяКомпиляцииЧислаЦелого" или

"Значение,ИзвестноеВоВремяКомпиляции,ТипаЧислоЦелое"?

"Значение перечисления" или "значение типа перечисления" или "значение типа перечислимого"?

"ЗначенияТипаНуль" или "ЗначениеТипаНуля"? (* имеется в виду нулевой указатель, который обозначается как НУЛЬ *)

Кому это покажется слишком простым, вот: "Посети значение, известное во время компиляции, перечислимого типа"

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

Re: Ещё раз о типах и значениях

Сообщение БудДен » 25.04.21 15:20

Но ведь и это ещё фигня. Потому что на самом деле тут есть оттенки смысла. Выражение типа строка может иметь разный строковой тип, поэтому это не просто "выражение типа строка", а "выражение одного из строковых типов", т.е. "выражение строкового типа". И плюс к тому, "значение строкового типа" может быть строковым литералом, а может и не быть строковым литералом. Сам строковый литерал для единообразия должен называться "литерал строкового типа". Но я пытался ставить слово "тип" после слова "литерал", поэтому строковый литерал должен называться "литерал типа строкового". Ад.

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

Короче говоря, есть серьёзные неоднозначности с тем, в какой форме должны участвовать названия типов. Получается, что в речи мы производим значительные сокращения для разговорных форм и "один из типов, обозначающих целые числа" превращается в "целый тип", а то и просто в "целое". Но в компиляторе нужно применять более полные формы. При том там будет не просто тип, а "определение типа" или "обращение к типу".
Последний раз редактировалось БудДен 25.04.21 15:49, всего редактировалось 1 раз.

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

Re: Ещё раз о типах и значениях

Сообщение MihalNik » 25.04.21 15:42

БудДен писал(а):
25.04.21 15:15
ТипЧислаЦелого или ТипЧислоЦелое или ТипЦелое?
Вы где это слышали?
Можно сказать, что переменная целочисленного типа или типа целое число.
Ставить прилагательное после существительного ни один вменяемый человек в письменной речи не будет. Потому что это бурный поток необработанных мыслей.

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

Re: Ещё раз о типах и значениях

Сообщение БудДен » 25.04.21 16:00

Давайте без резких высказываний про вменяемость. Сначала подумайте, а потом уже пишите так категорично. Иначе глупо получается.

В различных номенкулатурах сплошь и рядом ставится существительное перед прилагательным. Примеры:

https://efsol.ru/manuals/naming-template.html - "Шоколад (Milka/С клубникой со сливками/300г.)"

https://himreactiv.ru/catalog/ - "Среды питательные", "бумага индикаторная" и проч.

И ещё один пример: птичка называется "зяблик обыкновенный", а не "обыкновенный зяблик". Имя большую номенкулатуру, поневоле приходится всё именовать систематически. В лисокомпиляторе уж не меньше полусотни видов узлов синт. дерева. Если терминология будет нечёткой, то с ней будет трудно работать.

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

Re: Ещё раз о типах и значениях

Сообщение БудДен » 25.04.21 16:07

P.S. а программирование - это всё же не совсем речь. В том-то и проблема, чтобы найти баланс между неточной, но короткой речью и чётким, но громоздким формальным языком. Притом кажется более правильным сначала сделать перекос в сторону формального языка, а уже потом пытаться срезать углы. Но получается так монструозно и столько нюансов, что не получается пока выработать этот формальный язык.

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

Re: Ещё раз о типах и значениях

Сообщение MihalNik » 25.04.21 16:17

БудДен писал(а):
25.04.21 16:00
Давайте без резких высказываний про вменяемость. Сначала подумайте, а потом уже пишите так категорично. Иначе глупо получается.

В различных номенкулатурах сплошь и рядом ставится существительное перед прилагательным. Примеры:

https://efsol.ru/manuals/naming-template.html - "Шоколад (Milka/С клубникой со сливками/300г.)"

https://himreactiv.ru/catalog/ - "Среды питательные", "бумага индикаторная" и проч.

И ещё один пример: птичка называется "зяблик обыкновенный", а не "обыкновенный зяблик". Имя большую номенкулатуру, поневоле приходится всё именовать систематически. В лисокомпиляторе уж не меньше полусотни видов узлов синт. дерева. Если терминология будет нечёткой, то с ней будет трудно работать.
В языке номенклатуры не составляют сложных языковых конструкций. Потому что это просто словесные идентификаторы.
Там единственная задача - быстрого зрительного поиска сужением. Поэтому вначале зяблик или комар, а потом - какие они бывают.

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

Re: Ещё раз о типах и значениях

Сообщение БудДен » 25.04.21 18:06

Необязательно зрительного, грепом тоже можно пользоваться, и, главное, фильтровать. При фиксированном порядке слов фильтровать по подстроке получится, при нефиксированном - не получится. Но согласен, у нас не задача про номенкулатуру, а номенкулатура плюс сверху шаблонные фразы про неё.

Вот примеры смыслов и их названий в лисокомпиляторе:
"один из типов целых чисел" (нет названия), "обращение к конкретному типу целых чисел в исходнике" (IntegerType), "значение, известное во время компиляции, тип которого является одним из типов целых чисел" (IntegerValue), "посетитель заходит в значение, известное во время компиляции, тип которого является одним из типов целых чисел" (VisitIntegerValue). Из опыта я скажу, что при чтении кода весьма непонятно, что значит IntegerValue или IntegerType (там, конечно, прежде всего паршивые комментарии). Я с этим всем разобрался, но это заняло время. Проходит неделя или попадается какой-то сложный контекст - может вылететь из головы и начинается буксовка мысли.

Как называть всё вышеперечисленное?

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

Re: Ещё раз о типах и значениях

Сообщение MihalNik » 26.04.21 00:00

БудДен писал(а):
25.04.21 18:06
Необязательно зрительного, грепом тоже можно пользоваться, и, главное, фильтровать. При фиксированном порядке слов фильтровать по подстроке получится, при нефиксированном - не получится. Но согласен, у нас не задача про номенкулатуру, а номенкулатура плюс сверху шаблонные фразы про неё.

Вот примеры смыслов и их названий в лисокомпиляторе:
"один из типов целых чисел" (нет названия), "обращение к конкретному типу целых чисел в исходнике" (IntegerType), "значение, известное во время компиляции, тип которого является одним из типов целых чисел" (IntegerValue), "посетитель заходит в значение, известное во время компиляции, тип которого является одним из типов целых чисел" (VisitIntegerValue). Из опыта я скажу, что при чтении кода весьма непонятно, что значит IntegerValue или IntegerType (там, конечно, прежде всего паршивые комментарии). Я с этим всем разобрался, но это заняло время.
"Один из типов целых чисел" - это ЦелочисленныйТип или ТипаЦелогоЧисла
"обращение к конкретному типу целых чисел в исходнике" - непонятно что значит. Предписание (назначение) типа переменной?
Или уточнение целочисленного типа?
"значение, известное во время компиляции, тип которого является одним из типов целых чисел" (IntegerValue) - речь про целочисленную константу? Или предустановленную переменную?
"посетитель заходит в значение, известное во время компиляции, тип которого является одним из типов целых чисел" (VisitIntegerValue)
- опять не ясно что значит зайти в значение. Получить его? Если нет - то важен не факт, а кто/зачем.
Клиент посещает парикмахера - это одно. СЭС - другое. Налоговая - третья. Курьер по доставке еды - четвертое. В контексте это может быть понятно, а вот так вырвано из него - нет.
Слова "обращение/посещение" не передают никакого смысла, кроме действия с объектом (т.е. его метода в терминах ООП), очевидного из сигнатуры вызова, где он передается. Т.е. ровно тоже самое, что и "процедура".
БудДен писал(а):
25.04.21 18:06
Проходит неделя или попадается какой-то сложный контекст - может вылететь из головы и начинается буксовка мысли.
Это говорит о неудачности соответствующих названий, потому что они теряют какую-то часть сведений о функции именуемой сущности.
Поэтому надо подробно передавать полезную часть сведений, а не раздувать КЭП.
Например, если в Обероне запись "А(Б)" всегда означает процедуру/функцию "А" с параметром "Б", то синонимы слов "процедура" и "параметр" применительно к "А" и "Б" соответственно будут избыточны и равносильны "ПроцедураА_сПараметром(Б)".
БудДен писал(а):
25.04.21 18:06
Необязательно зрительного, грепом тоже можно пользоваться, и, главное, фильтровать. При фиксированном порядке слов фильтровать по подстроке получится, при нефиксированном - не получится.
Электронному поиску (современному) как раз все равно какой порядок слов. А номенклатурщики никогда грепом не пользовались, всегда работали с таблицами, фильтруя типизированные данные.

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

Re: Ещё раз о типах и значениях

Сообщение БудДен » 26.04.21 11:53

"обращение к конкретному типу целых чисел в исходнике" - непонятно что значит. Предписание (назначение) типа переменной?
Или уточнение целочисленного типа?
Я отдельную тему про это заводил, там объяснено: http://вече.программирование-по-русски. ... ?f=6&t=415 . То, что Вы не понимаете - показывает, что без погружения в контекст и такое многословное объяснение непонятно.
"значение, известное во время компиляции, тип которого является одним из типов целых чисел" (IntegerValue) - речь про целочисленную константу? Или предустановленную переменную?
Речь про то, что нечто имеет значение 4, и мы знаем это (знаем само значение 4) уже во время компиляции. Константа ли это, литерал ли, или результат какого-нибудь SIZEOF(int), или результат TRUNC(4.4), вычисленный во время компиляции - об этом не говорится.
ТипаЦелогоЧисла
Почему "Типа"? Это в родительном падеже?
опять не ясно что значит зайти в значение. Получить его? Если нет - то важен не факт, а кто/зачем.
Это шаблон посетитель, мы уже обсуждали. Примеры посетителей - это смыслоуловитель, генератор объектного кода, генератор документации, переводчик, генератор форматированного исходника из дерева. Кто заходит - ясно по типу посетителя в точке применения или по тому, чей метод мы сейчас читаем. Зачем заходит - для выполнения своей задачи. А вот куда заходит - нужно выписать, потому что нельзя написать просто "зайти", нужно обязательно написать - куда, потому что иначе нельзя выразить двойную диспетчеризацию в том ООП, к-рое есть в АО. Ссылку на статью про шаблон посетитель я уже давал. Почитайте ещё раз, если непонятно, только не надо осуждать этот шаблон. Мне самому он не нравится, но у меня нет ресурсов прямо сейчас впилить в АО двойную диспетчеризацию и перепахать весь компилятор. Формат моей работы состоит в том, что я перевожу существующий код. Хорош он или плох - он решает свои задачи.
Слова "обращение/посещение" не передают никакого смысла, кроме действия с объектом (т.е. его метода в терминах ООП), очевидного из сигнатуры вызова, где он передается.
В том и дело, что не очевидно.
Это говорит о неудачности соответствующих названий
Да. Код я не меняю, а названия стараюсь улучшить, чтобы следующие читатели не мучались так же, как я. Хотя есть конечно другой вариант - перевести названия буквально, а к каждому объекту написать подробный комментарий. Третий вариант - завести тонну аббревиатур и пусть читатель перед чтением выпишет их (штук 10-20) на бумажку, которую прилепит на стенку рядом с монитором. Я, кстати, склоняюсь к тому, что это единственный возможный вариант. Можно ещё увеличить длину идентификатора (в компиляторе есть ограничение, я его уже увеличивал раза два, технически проблемы нет). Но когда идентификатор в ширину не помещается на экране и требует переноса на другую строку - это уже явный перебор. А к тому идёт.
Электронному поиску (современному) как раз все равно какой порядок слов.
Вы где-нибудь видели поиск в ИСР, позволяющий искать ВотТакиеСлова с помощью поиска по отдельным словам в любом порядке? Я сам никогда не пользовался ни в одной среде разработки таким поиском, никогда не видел ни одного человека, который бы им пользовался и даже про него никогда нигде не читал. Мне никогда не приходилось писать регулярное выражение, которое бы так искало. Т.е. это может быть какой-то теоретически возможный поиск, но не то, чем пользуются реальные люди. Возможно, я, конечно мало видел людей и программы, но было бы неплохо разубедить меня ссылкой.

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

Re: Ещё раз о типах и значениях

Сообщение MihalNik » 26.04.21 13:11

БудДен писал(а):
26.04.21 11:53
Это шаблон посетитель, мы уже обсуждали.
Но слово посетить - его никак не отражает. Оно просто читается как переход и это невозможно изменить никакими статьями.
Кто-то выбрал неудачное обозначение для абстракции. А потом ее также удачно недоперевели.
Суть в том что передачи смысла не проиходит. Я могу только по комментарию "(*abstract*)" догадаться что процедуры подменяются, а по слову посетить - никак. Попытка привязать специфический смысл слову, по виду которого нельзя догадаться о том, что ему приписан специфический смысл - плохая затея. По словосочетанию "зяблик обыкновенный" можно, а по слову "посетить" - нельзя.
Вот если Вы напишите "ШП" - тогда будет видно, что смысл специфический. Только не забудьте составить список аббревиатур со ссылками на статьи.
БудДен писал(а):
26.04.21 11:53
Вы где-нибудь видели поиск в ИСР, позволяющий искать ВотТакиеСлова с помощью поиска по отдельным словам в любом порядке? Я сам никогда не пользовался ни в одной среде разработки таким поиском, никогда не видел ни одного человека, который бы им пользовался и даже про него никогда нигде не читал. Мне никогда не приходилось писать регулярное выражение, которое бы так искало. Т.е. это может быть какой-то теоретически возможный поиск, но не то, чем пользуются реальные люди. Возможно, я, конечно мало видел людей и программы, но было бы неплохо разубедить меня ссылкой.
Я вообще крайне редко пользуюсь текстовым поиском в ИСР, потому что он кривой относительно ЯП, который требует древовидный разбор.
БудДен писал(а):
26.04.21 11:53
Почему "Типа"? Это в родительном падеже?
Потому что это вариант для сочетания с другим существительным, которое в русском языке требует падежа или предлога.
Чтобы писать "Константа/Функция/ПеременнаяТипаЦелогоЧисла".
Можно даже сократить до ТипаЦелЧисла, потому что окончание прилагательного для определенного рода и падежа восстанавливается однозначно.
БудДен писал(а):
26.04.21 11:53
Речь про то, что нечто имеет значение 4, и мы знаем это (знаем само значение 4) уже во время компиляции. Константа ли это, литерал ли, или результат какого-нибудь SIZEOF(int), или результат TRUNC(4.4), вычисленный во время компиляции - об этом не говорится.
Это и есть константы ("неизменные"). А спрашивалось, может ли изменяться впоследствии.

Ответить