Диалектическая онтология типов подчиняется тем же законам, что и весь диалектический материализм.
Диалектическая онтология типов как отражение структуры объективной реальности.
Мы уже отвергли идеалистические перекосы:
null как "сущее небытие",Но теперь настал момент синтеза:
к диалектической онтологии типа.
Тип — ярлык, классификация. Неподвижен.
int , string , bool
Противоречие: Простые типы не отражают сложность мира. Возникает потребность в составных. Простые типы поглощаются составными.
struct , class , tuple
Кроме того, Целое — как простой тип не просто число, а объект с поведением. Поведение объекта, способы взаимодействия с миром определяются свойствами самого объекта. С другой стороны, те же свойства объекта диалектически накладывают ограничения на тот же объект.
Базовый тип-процесс, отношение, структура в движении. Универсальный тип, порождающий себя и служащий строительным материалом для порождения других типов.
Это — не эволюция, а революция в мышлении:
Целое не просто как один из типов, а как фундаментальный тип реальности.
Ошибка: тип как "вещь в себе"
В C , Java , Python : int — это нечто отдельное, не связанное с практикой.
Но в реальности:
Нет никакого абстрактного int . Есть:
Это всё целые числа, но это разные целые числа. Нельзя складывать число яблок с числом груш. Это разные числа. Но, складывая эти разные числа -- можно получить число фруктов, как число нового типа.
Важное замечание: арифметический знак + при подобном сложении будем неадекватным, так как не отражает диалектический процесс превращения одного вида материи в другой.
Принципы:
Отражает объективную структуру предметной области
Не задаётся сверху, а вырастает из задачи
Развивается, дополняется, трансформируется
Не изолирован, а связан с другими типами, с памятью, с временем
Чем глубже понимание — тем точнее тип. Тип — это не только ответ на вопрос "что это", но и "почему", "каким образом", "зачем".
Мы отрицаем существование "абстрактных типов" как таковых.
Нет int . Есть Счёт , Индекс , Количество , КодОшибки .
Нет string . Есть Имя , Хэш , Запрос , Ответ .
(тип Рубль Рубля Рублей (// синонимы типа)
@_база Целое (// Абстракция в основе типа)
@_диапазон (0 999_999_999) (// Допустимый диапазон на базе абстрактного типа)
@_операции (слож выч)) (// Допустимые операции над конкретным типом)
Примитив не уничтожен, но воспроизведён на новом уровне — как осмысленная категория.
@база ЦелоеАтрибут @база опирается на математическую абстракцию Целое , но по отношению к материалистичному миру является сущим только в рамках математического дискурса.
Это — ключевое уточнение, которое позволяет не отступать от диалектического материализма, но признать относительную самостоятельность математического мышления как специфической формы отражения реальности.
ПОНЯТИЕ | СТАТУС В ОНТОЛОГИИ PROLET
----------------|---------------------------------------------------------------
Целое | Не первичная данность, а результат высшего обобщения практики счёта
| (считали камни, яблоки, дни — и выделили общую форму)
----------------|---------------------------------------------------------------
Математический | Специфическая социальная практика, в которой абстракция (вроде `Целое`)
дискурс | обращаются как сущее, хотя она и есть специфичная форма материи
----------------|---------------------------------------------------------------
@база | Указание на форму, заимствованную из математического дискурса, но
| используемую как инструмент для организации сущего
Это — не признание платонизма, а признание автономии отражения.
Как язык отражает мир, так и математика — отражает количественные отношения, но не существует вне практики.
📜 Принципы объявления типов prolet
Целое, Строка, Дробное, Логическое — не типы, а базовые абстракциибаза — не наследование, а заимствование формы из дискурса математики(тип Целое ...) — ошибка онтологии, запрещеноСтруктура — не просто набор полей, а единство противоречий:
(тип Роль
@_обязательно
@_база Перечисление
@_выбор_ (Админ Пользователь Гость)
@значение Гость (// По умолчанию, можно менять)
@_док "Роль пользователя в системе")
(тип ПользовательНомер
@_обязательно
@_база Целое
@_диапазон (1 999_999_999)
@_автоИнкремент
@_уникально
@_док "идентификация пользователя в системе")
(тип Имя
@_обязательно
@_база Строка
@_умолчание "Иван"
@_док "идентификация пользователя в системе")
(структ Пользователь
@_номер ПользовательНомер
@имя Имя (// Можно менять)
@счёт Счёт
@роль Роль
@если_акт Активность
)
Поле в структуре может ссылаться только на практический тип — то есть на материализованное сущее.
Прямая ссылка на базовую абстракцию (Целое, Строка и т.п.) — запрещена.
Все атрибуты, помечены префиксами:
@_база -- системный, нельзя изменить@значение -- пользовательский, можно изменять.В приведённом синтаксисе достигается единство формы и содержания:
АСПЕКТ ОБЪЯСНЕНИЕ
------ ---------------------------
Онтология Тип — не шаблон, а форма сущего в практике. Если в практике номер
всегда уникален и присваивается автоматически, то эти свойства —
часть его бытия, а не внешнее условие.
Единство нормы Если ПользовательНомер используется в 10 структурах — не нужно 10 раз писать
@уникально. Нарушение — на уровне типа, а не контекста.
Безопасность Система гарантирует уникальность и обязательность на уровне типа,
а не доверяет структуре "не забыть".
Эволюция практики Если правило изменится (например, номер перестанет быть авто-инкрементным), —
меняется один
(интерфейс ИХранилище
@_док "Абстракция работы с хранилищем"
(ПолучФайл (имя @фикс ИмяФайла) -> @фикс Результат Спис.Байт
@_док "Читает файл с диска")
(ЗаписатьФайл (имя @фикс ИмяФайла данные @фикс Спис.Байт) -> @фикс Результат Логическое
@_док "Записывает файл на диск")
(ЗакрытьХранилище)
)
(ПолучИнтерфейс НовХранилище как ИХранилище -> мут хран)
((ПолучФайл хран получить "test.txt") -> _)
Тип определяется не сущностью, а связями — как в диалектике.
(@имя Тип, @данные Тип) — именованные, ссылаются на типы Обобщённые абстракции (отрицание)
↓
Конкретные типы (противоположность)
↓
Структуры (синтез)
↓ ↘
атрибуты методы
^
Интерфейсы
Это — спираль развития, а не лестница. Каждый новый тип — не просто добавление, а результат борьбы и единства противоположностей.
Это — не просто система типов, это — модель познания мира:
от чувственного (примитив) → к рациональному (сложное) → к диалектическому (универсальное).
Язык, построенный так, не может допустить ошибку на миллиард долларов, потому что он не позволяет мыслить иначе, чем в категориях реальности.