Răsfoiți Sursa

Добавление документациии

SVI 7 luni în urmă
părinte
comite
f02e8069e2
2 a modificat fișierele cu 203 adăugiri și 0 ștergeri
  1. 1 0
      README.md
  2. 202 0
      docs/prolet-015.md

+ 1 - 0
README.md

@@ -21,6 +21,7 @@
 - [Диалектика изменяющего и трансформирующего действия](./docs/prolet-012.md)
 - [Присвоение результатов как диалектическое отражение времени](./docs/prolet-013.md)
 - [Взгляд на виртуальную машину через диалектику бытия](./docs/prolet-014.md)
+- [Диалектика статических обобщённых типов](./docs/prolet-015.md)
 - Атомы языка
 - ВМ
 - Система типов

+ 202 - 0
docs/prolet-015.md

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