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