|
@@ -1,200 +1,171 @@
|
|
|
# pro-015 Диалектика статических обобщённых типов
|
|
# pro-015 Диалектика статических обобщённых типов
|
|
|
|
|
|
|
|
-Руководствуясь принципами диалектического материализма необходимо признать, что в реальном мире могут существовать только те типы, которые отражают эту реальность. Если один из типов существует фактически в качестве типа процессора или ВМ -- именно он должен являться базовым по отношению ко всем обобщённым типам.
|
|
|
|
|
|
|
+Руководствуясь принципами диалектического материализма необходимо признать, что в реальном мире могут существовать только те типы, которые отражают эту реальность. Если один из типов существует фактически в качестве типа процессора или ВМ -- именно он должен являться кварка по отношению ко всем обобщённым типам.
|
|
|
|
|
|
|
|
-В синтезированной **ВМ** `prolet` базовым типом выбрано знаковое целое, потому что оно наилучшим образом отражает задачи, стоящие перед разработчиком в составе коллектива в текущих условиях.
|
|
|
|
|
|
|
+В синтезированной **ВМ** `prolet` кварками выбраны несколько типов, потому что такой подход наилучшим образом отражает задачи, стоящие перед разработчиком в составе коллектива в текущих условиях.
|
|
|
|
|
|
|
|
Таким образом провозглашён онтологический принцип:
|
|
Таким образом провозглашён онтологический принцип:
|
|
|
|
|
|
|
|
-::: info
|
|
|
|
|
-`Целое` — форма, используемая в практике вычислительных процессов **ВМ**.
|
|
|
|
|
-
|
|
|
|
|
-:::
|
|
|
|
|
-
|
|
|
|
|
-Это — не компромисс, не инженерная хитрость в духе `ad hoc`, а логический шаг в построении онтологии **prolet**, где любой тип отображается в одном типе **ВМ** , а многообразие — из одного и реально существующего.
|
|
|
|
|
|
|
+> 💡 Кварк — форма, используемая в практике вычислительных процессов **ВМ**.
|
|
|
|
|
+Это — не компромисс, не инженерная хитрость в духе `ad hoc`, а логический шаг в построении онтологии **prolet**, где любой кварк отображается в одном типе **ВМ** , а многообразие кварков — из нескольких и реально существующих. Несколько видов кварков необходимы, потому что они отражают объективные формы материи в цифровой практике — и ни одну из них нельзя редуцировать к другой без потери смысла, эффективности или безопасности.
|
|
|
|
|
|
|
|
Разберём это решение в свете диалектического материализма.
|
|
Разберём это решение в свете диалектического материализма.
|
|
|
|
|
|
|
|
-## Зачем именно знаковое целое? Онтологическое обоснование
|
|
|
|
|
|
|
+## Зачем именно несколько видов кварков? Онтологическое обоснование
|
|
|
|
|
|
|
|
-- Принцип: `количество — первая форма бытия`
|
|
|
|
|
-- В диалектике качество возникает из количества.
|
|
|
|
|
-- Прежде чем различать "истина/ложь", "литера", "адрес" — мир различает "сколько?".
|
|
|
|
|
|
|
+- Принцип: `смысл — первая форма бытия`,
|
|
|
|
|
+- В диалектике смысл возникает из данности форм материи,
|
|
|
|
|
+- Прежде чем различать "сколько?" -- мир различает"истина/ложь", "литера", "адрес",
|
|
|
|
|
+- И только после этого -- чего сколько,
|
|
|
|
|
+- И мир не смешивает разные типы кварков.
|
|
|
|
|
|
|
|
-Целое — форма дискретного приближения в условиях цифровой вычислительной техники, способная отражать объективные состояния:
|
|
|
|
|
|
|
+Кварк — форма дискретного приближения в условиях цифровой вычислительной техники, но кварк не способен сам по себе отражать смыслы:
|
|
|
|
|
|
|
|
- температура,
|
|
- температура,
|
|
|
- счёт,
|
|
- счёт,
|
|
|
- индекс,
|
|
- индекс,
|
|
|
- время,
|
|
- время,
|
|
|
-- ошибка (код),
|
|
|
|
|
-- адрес памяти (в относительной форме).
|
|
|
|
|
-
|
|
|
|
|
-Оно — не абстракция, а отражение закона измерения в природе.
|
|
|
|
|
-
|
|
|
|
|
-## Почему именно знаковое?
|
|
|
|
|
-
|
|
|
|
|
-Потому что реальный мир — не только "больше нуля". Разработчик определяет разные типы величин:
|
|
|
|
|
|
|
+- ошибка (код).
|
|
|
|
|
|
|
|
-- Температура может быть −273°C,
|
|
|
|
|
-- Баланс — отрицательным,
|
|
|
|
|
-- Ошибка — кодом `−1`.
|
|
|
|
|
|
|
+Кварк — не абстракция, а отражение закона бытия в природе.
|
|
|
|
|
|
|
|
-Беззнаковое — это усложнение выражения счёта в ВМ, которое влечёт за собой усложнение процедур счёта, а диалектика — основана на отрицании.
|
|
|
|
|
|
|
+## Почему именно несколько видов кварков?
|
|
|
|
|
|
|
|
-Знаковое целое — отражает опыт практики, и потому — диалектически полно.
|
|
|
|
|
|
|
+Потому что реальный мир — через набор кварков отражает опыт практики, а не личные предпочтения автора языка. Таков мир по своей сути.
|
|
|
|
|
|
|
|
## Производные типы: снятие противоречия через практику
|
|
## Производные типы: снятие противоречия через практику
|
|
|
|
|
|
|
|
В **prolet** отказ от "независимых" типов носит методический характер.
|
|
В **prolet** отказ от "независимых" типов носит методический характер.
|
|
|
|
|
|
|
|
-Вместо куста чудесным образом возникающих базовых типов — все базовые типы порождаются от целого, но не механически, а через ограничение и интерпретацию.
|
|
|
|
|
|
|
+Вместо куста чудесным образом возникающих базовых типов — все кварки порождаются из отражения мира, но не механически, а через принцип полноты и достаточности практики.
|
|
|
|
|
|
|
|
### Булево
|
|
### Булево
|
|
|
|
|
|
|
|
-форма, используемая в практике логических суждений, представлено целым (выбор из множества [0, не 0])
|
|
|
|
|
|
|
+Кварк, используемый в практике логических суждений, представлено bool (выбор из множества [true, false])
|
|
|
|
|
|
|
|
-### Литера
|
|
|
|
|
|
|
+### Строка
|
|
|
|
|
|
|
|
-форма, используемая в практике обозначения печатных символов. Целое (интерпретация Юникода, диапазон [0x00, 0x10FFFF])
|
|
|
|
|
|
|
+Кварк, используемый в практике обозначения печатных символов. Набор литер UTF-8.
|
|
|
|
|
|
|
|
-### Беззнаковое
|
|
|
|
|
|
|
+## Реализация в prolet: кварк как категории практики
|
|
|
|
|
|
|
|
-не свойство целого, а отражение социального требования:
|
|
|
|
|
-„счётчик не может быть отрицательным“ `@диапазон (0, ЦелоеМакс)`
|
|
|
|
|
-
|
|
|
|
|
-Это — не упрощение, это — ограничение через свойства:
|
|
|
|
|
-
|
|
|
|
|
-- Простое (целое) — утверждается,
|
|
|
|
|
-- Сложное (булево, литера) — конкретизирует его,
|
|
|
|
|
-- Но затем — редуцируется само,
|
|
|
|
|
-- И возвращается как интерпретация целого в заданном контексте.
|
|
|
|
|
-
|
|
|
|
|
-## Реализация в prolet: типы как категории практики
|
|
|
|
|
-
|
|
|
|
|
-### Тип Целое
|
|
|
|
|
|
|
+### Кварк Целое
|
|
|
|
|
|
|
|
```prolet
|
|
```prolet
|
|
|
-(тип Яблоки : Целое)
|
|
|
|
|
|
|
+(нуклон Яблоки
|
|
|
|
|
+ @_кварк Целое
|
|
|
|
|
+ @_контракт (КонтрактЯблоки)(// В ящике от 0 до 500 яблок)
|
|
|
|
|
+)
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Целое не определяется через какой-то другой тип. В синтезированной ВМ `prolet` целое принимается в качестве базовой формы представления, поскольку она наилучшим образом отражает практику измерения и счёта в текущих условиях. Все допустимые операции — определены на нём напрямую.
|
|
|
|
|
|
|
+Кварк Целое не определяется через какой-то другой тип. В синтезированной **ВМ** `prolet` целое принимается в качестве базовой формы представления, поскольку она наилучшим образом отражает практику измерения и счёта в текущих условиях. Все допустимые операции — определены на нём напрямую.
|
|
|
|
|
|
|
|
### Булево как ограниченное целое
|
|
### Булево как ограниченное целое
|
|
|
|
|
|
|
|
```prolet
|
|
```prolet
|
|
|
-(тип Булево : Целое
|
|
|
|
|
- @перечисл [Ложь, Истина]
|
|
|
|
|
- @интерпретация (0 → Ложь, не 0 → Истина)
|
|
|
|
|
|
|
+(нуклон ЕслиДень
|
|
|
|
|
+ @_кварк Бул
|
|
|
|
|
+)
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Использование:
|
|
Использование:
|
|
|
|
|
|
|
|
```prolet
|
|
```prolet
|
|
|
-((Бул 5) -> @фикс еслиВкл)( // значение Истина)
|
|
|
|
|
-(если еслиВкл
|
|
|
|
|
- тогда (Напечатать "ВКЛ"))
|
|
|
|
|
|
|
+(Яблоки 5) (уст ящикЯблоки @изм)(// значение 5)
|
|
|
|
|
+(если ящикЯблоки > 5
|
|
|
|
|
+ тогда (Напечатать "Ящик переполнен")
|
|
|
|
|
+ иначе (Напечатать "Ящик в пределах нормы")
|
|
|
|
|
+)
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
При этом:
|
|
При этом:
|
|
|
|
|
|
|
|
-- В памяти — просто не 0,
|
|
|
|
|
-- Но в контексте условия — интерпретируется как `Истина`.
|
|
|
|
|
|
|
+- В памяти — не просто 5, а сущност с контрактом,
|
|
|
|
|
+- Но в контексте условия — интерпретируется как `Яблоки`.
|
|
|
|
|
|
|
|
## Литера как целое с семантикой кода UTF-8
|
|
## Литера как целое с семантикой кода UTF-8
|
|
|
|
|
|
|
|
```prolet
|
|
```prolet
|
|
|
|
|
|
|
|
-(тип Литера : Целое
|
|
|
|
|
- @диапазон (0 0x10FFFF)
|
|
|
|
|
- @интерпретация Юникод
|
|
|
|
|
- @литералы ('a' .. 'я')
|
|
|
|
|
|
|
+(нуклон Имя
|
|
|
|
|
+ @_кварк Стр
|
|
|
|
|
+ @_контракт (КонтрактИмя) (// От 5 до 20 литер)
|
|
|
|
|
+)
|
|
|
|
|
|
|
|
-(Лит 'А')(уст литА)(// литера с кодом 1040)
|
|
|
|
|
|
|
+(Имя "Иван")(уст иван)(// нуклон Имя со значением "Иван")
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Литера — не "отдельный тип", а целое, наделённое смыслом с помощью ограничивающих свойств.
|
|
|
|
|
|
|
+Строка — не "отдельный тип", а форма практики.
|
|
|
|
|
|
|
|
### Беззнаковое — как контракт, а не тип
|
|
### Беззнаковое — как контракт, а не тип
|
|
|
|
|
|
|
|
```prolet
|
|
```prolet
|
|
|
|
|
|
|
|
-(тип Абс (// Абсолютное значение целого)
|
|
|
|
|
- (// проверяется на этапе компиляции или рантайме)
|
|
|
|
|
- @диапазон (0 ЦелМакс)
|
|
|
|
|
|
|
+(нуклон Абс (// Абсолютное значение целого)
|
|
|
|
|
+ (// проверяется на этапе компиляции или рантайме)
|
|
|
|
|
+ @_кварк Цел
|
|
|
|
|
+ @_контракт (БольшеНуля)(// Контракт на положительное значение)
|
|
|
)
|
|
)
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Или — через валидатор:
|
|
|
|
|
|
|
+Контракт -- встроенная форма контроля на инвариант сущего.
|
|
|
|
|
|
|
|
-```prolet
|
|
|
|
|
-(фн Беззнаковый (Битность имя): Результат.Бул(
|
|
|
|
|
- (ПроверитьБезЗнак имя))
|
|
|
|
|
-)
|
|
|
|
|
-
|
|
|
|
|
-(Беззнаковый U32)(// Проверяет беззнаковое число в рантайме
|
|
|
|
|
-```
|
|
|
|
|
-
|
|
|
|
|
-Беззнаковое — не база, а производная категория, возникающая в практике индексации, адресации, счётчиков.
|
|
|
|
|
|
|
+Беззнаковое — не кварк, а социальный контракт, возникающий в практике материи.
|
|
|
|
|
|
|
|
## Преимущества подхода
|
|
## Преимущества подхода
|
|
|
|
|
|
|
|
-- Минимализм онтологии
|
|
|
|
|
-- Один базовый тип — меньше путаницы, меньше ошибок
|
|
|
|
|
-- Единство представления
|
|
|
|
|
-- Все *атомарные* данные в **ВМ** представлены целыми, но их интерпретация определяется социальным контекстом через свойства
|
|
|
|
|
-- Безопасность через контекст
|
|
|
|
|
-- Ошибка "сложить символ и булево" — на уровне типов, при помощи свойств
|
|
|
|
|
-- Развиваемость
|
|
|
|
|
|
|
+- Минимализм онтологии,
|
|
|
|
|
+- ОНесколько кварков — меньше путаницы, меньше ошибок.
|
|
|
|
|
+- Единство представления,
|
|
|
|
|
+- Все кварки в **ВМ** представлены своими типами, и их интерпретация определяется только самим кварками, что позволяет при необходимости добавлять другие кварки,
|
|
|
|
|
+- Безопасность через контекст кварка,
|
|
|
|
|
+- Ошибка "сложить строку и булево" — на уровне кварка невозможно,
|
|
|
|
|
+- Развиваемость.
|
|
|
|
|
|
|
|
-Новые типы — добавляются, но через вывод из целого как часть практики
|
|
|
|
|
|
|
+Новые кварки — добавляются, но через вывод из практики.
|
|
|
|
|
|
|
|
## Экономия мыслетоплива
|
|
## Экономия мыслетоплива
|
|
|
|
|
|
|
|
-Программист не думает: "это `int` или `uint`?", а думает: "это счётчик, значит — неотрицательное"
|
|
|
|
|
|
|
+Программист не думает: "это `int` или `uint`?", а думает: "это счётчик, значит — неотрицательное". А контракт на нуклон даёт гарантии исполнения.
|
|
|
|
|
|
|
|
## Психологическая и педагогическая выгода
|
|
## Психологическая и педагогическая выгода
|
|
|
|
|
|
|
|
-- Новичок учит один тип — целое, а потом — как его интерпретировать.
|
|
|
|
|
-- Ошибки вроде `i = -1`; `for (i < n; ...)` — обнаруживаются по типу, и по нарушению контракта `(@диапазон (0 .. ∞)`.
|
|
|
|
|
-- Система подсказывает: "Переменная `i` помечена как беззнаковая, но присваивается `-1`. Это противоречит контракту."
|
|
|
|
|
|
|
+- Новичок учит шесть видов кварков, и какова их природа.
|
|
|
|
|
+- Ошибки вроде `i = -1`; `for (i < n; ...)` — контролируются на уровне нуклонов, у которых могут быть определены контракты.
|
|
|
|
|
|
|
|
Это — не бюрократия, это — диалектическое воспитание сознания.
|
|
Это — не бюрократия, это — диалектическое воспитание сознания.
|
|
|
|
|
|
|
|
## Диалектическая природа целого: от количества к качеству
|
|
## Диалектическая природа целого: от количества к качеству
|
|
|
|
|
|
|
|
-Целое — не конец пути, а начало познания.
|
|
|
|
|
|
|
+Кварк — не конец пути, а начало познания.
|
|
|
|
|
|
|
|
### Количество
|
|
### Количество
|
|
|
|
|
|
|
|
-`x = 42`
|
|
|
|
|
|
|
+`(Цел 43)(уст ц1)`
|
|
|
|
|
|
|
|
-### Простое накопление
|
|
|
|
|
|
|
+### Простой контроль
|
|
|
|
|
|
|
|
-Ограничение: `@x (0 .. 100)`
|
|
|
|
|
|
|
+Ограничение: `@_контракт (ЯщикКонтроль)`
|
|
|
|
|
|
|
|
### Единство и борьба (ограничение свободы ради смысла)
|
|
### Единство и борьба (ограничение свободы ради смысла)
|
|
|
|
|
|
|
|
-- Интерпретация `x` как возраст, код ошибки, символ
|
|
|
|
|
-- Переход количества в качество
|
|
|
|
|
-- Синтез: `ЕслиНечто нечто как Пользователь`
|
|
|
|
|
-
|
|
|
|
|
-`Целое` становится частью сложного процесса
|
|
|
|
|
|
|
+- Интерпретация `x` может быть любой: как возраст, код ошибки, символ; социальный контракт не отменяет кварк,
|
|
|
|
|
+- Переход количества в качество, при создании новых видов нуклонов,
|
|
|
|
|
+- Синтез: ограниченное число кварков даёт весь спектр нуклонов и атомов.
|
|
|
|
|
|
|
|
-`Целое` — не "вещь", оно — форма движения материи в пространстве значений.
|
|
|
|
|
|
|
+Кварк становится частью социальных нуклонов, но не перестаёт быть частью процессов вычислений.
|
|
|
|
|
|
|
|
-## Заключение: целое как первооснова prolet
|
|
|
|
|
|
|
+Кварк — не "вещь", он — форма движения материи в пространстве социальных значений.
|
|
|
|
|
|
|
|
-Приведённое решение — не просто техническое, оно — философское, революционное, диалектически зрелое.
|
|
|
|
|
|
|
+## 🎯 Заключение: кварки как первооснова prolet
|
|
|
|
|
|
|
|
-::: success
|
|
|
|
|
-`Целое` — не универсальная сущность, а **материальное условие, принятое в синтезированной ВМ** `prolet` для отражения практики счёта, измерения и индексации.
|
|
|
|
|
-Все прочие типы — не его «производные» в метафизическом смысле, а **формы его интерпретации в конкретных социальных контекстах**
|
|
|
|
|
|
|
+Приведённое решение — не просто техническое, оно — философское, новаторское, диалектически зрелое.
|
|
|
|
|
|
|
|
-:::
|
|
|
|
|
|
|
+> ✅ Кварк — не универсальная сущность, а **материальное условие, принятое в синтезированной ВМ** `prolet` для отражения практики всех информационных процессов.
|
|
|
|
|
+Все прочие нуклоны — не его «производные» в метафизическом смысле, а **формы его интерпретации в конкретных социальных контекстах**
|
|
|
|
|
|
|
|
-Все прочие типы — *не равноправны*,
|
|
|
|
|
|
|
+Все прочие нуклоны — *не равноправны*,
|
|
|
|
|
|
|
|
- они — его отражённые формы,
|
|
- они — его отражённые формы,
|
|
|
- его социальные ограничения,
|
|
- его социальные ограничения,
|
|
|
-- его контексты для построения пространства смыслов.
|
|
|
|
|
|
|
+- его контексты для построения пространства смыслов.
|