Руководствуясь принципами диалектического материализма необходимо признать, что в реальном мире могут существовать только те типы, которые отражают эту реальность. Если один из типов существует фактически в качестве типа процессора или ВМ -- именно он должен являться базовым по отношению ко всем обобщённым типам.
В синтезированной ВМ prolet базовым типом выбрано знаковое целое, потому что оно наилучшим образом отражает задачи, стоящие перед разработчиком в составе коллектива в текущих условиях.
Таким образом провозглашён онтологический принцип:
::: info
Целое — форма, используемая в практике вычислительных процессов ВМ.
:::
Это — не компромисс, не инженерная хитрость в духе ad hoc, а логический шаг в построении онтологии prolet, где любой тип отображается в одном типе ВМ , а многообразие — из одного и реально существующего.
Разберём это решение в свете диалектического материализма.
количество — первая форма бытияЦелое — форма дискретного приближения в условиях цифровой вычислительной техники, способная отражать объективные состояния:
Оно — не абстракция, а отражение закона измерения в природе.
Потому что реальный мир — не только "больше нуля". Разработчик определяет разные типы величин:
−1.Беззнаковое — это усложнение выражения счёта в ВМ, которое влечёт за собой усложнение процедур счёта, а диалектика — основана на отрицании.
Знаковое целое — отражает опыт практики, и потому — диалектически полно.
В prolet отказ от "независимых" типов носит методический характер.
Вместо куста чудесным образом возникающих базовых типов — все базовые типы порождаются от целого, но не механически, а через ограничение и интерпретацию.
форма, используемая в практике логических суждений, представлено целым (выбор из множества [0, не 0])
форма, используемая в практике обозначения печатных символов. Целое (интерпретация Юникода, диапазон [0x00, 0x10FFFF])
не свойство целого, а отражение социального требования:
„счётчик не может быть отрицательным“ @диапазон (0, ЦелоеМакс)
Это — не упрощение, это — ограничение через свойства:
(тип Яблоки : Целое)
Целое не определяется через какой-то другой тип. В синтезированной ВМ prolet целое принимается в качестве базовой формы представления, поскольку она наилучшим образом отражает практику измерения и счёта в текущих условиях. Все допустимые операции — определены на нём напрямую.
(тип Булево : Целое
@перечисл [Ложь, Истина]
@интерпретация (0 → Ложь, не 0 → Истина)
Использование:
((Бул 5) -> @фикс еслиВкл)( // значение Истина)
(если еслиВкл
тогда (Напечатать "ВКЛ"))
При этом:
Истина.
(тип Литера : Целое
@диапазон (0 0x10FFFF)
@интерпретация Юникод
@литералы ('a' .. 'я')
(Лит 'А')(уст литА)(// литера с кодом 1040)
Литера — не "отдельный тип", а целое, наделённое смыслом с помощью ограничивающих свойств.
(тип Абс (// Абсолютное значение целого)
(// проверяется на этапе компиляции или рантайме)
@диапазон (0 ЦелМакс)
)
Или — через валидатор:
(фн Беззнаковый (Битность имя): Результат.Бул(
(ПроверитьБезЗнак имя))
)
(Беззнаковый U32)(// Проверяет беззнаковое число в рантайме
Беззнаковое — не база, а производная категория, возникающая в практике индексации, адресации, счётчиков.
Новые типы — добавляются, но через вывод из целого как часть практики
Программист не думает: "это int или uint?", а думает: "это счётчик, значит — неотрицательное"
i = -1; for (i < n; ...) — обнаруживаются по типу, и по нарушению контракта (@диапазон (0 .. ∞).i помечена как беззнаковая, но присваивается -1. Это противоречит контракту."Это — не бюрократия, это — диалектическое воспитание сознания.
Целое — не конец пути, а начало познания.
x = 42
Ограничение: @x (0 .. 100)
x как возраст, код ошибки, символЕслиНечто нечто как ПользовательЦелое становится частью сложного процесса
Целое — не "вещь", оно — форма движения материи в пространстве значений.
Приведённое решение — не просто техническое, оно — философское, революционное, диалектически зрелое.
::: success
Целое — не универсальная сущность, а материальное условие, принятое в синтезированной ВМ prolet для отражения практики счёта, измерения и индексации.
Все прочие типы — не его «производные» в метафизическом смысле, а формы его интерпретации в конкретных социальных контекстах
:::
Все прочие типы — не равноправны,