|
|
@@ -9,7 +9,7 @@
|
|
|
|
|
|
Мы уже отвергли идеалистические перекосы:
|
|
|
|
|
|
-- `null` как "сущее небытие",
|
|
|
+- `nil` как "сущее небытие",
|
|
|
- динамика как хаос,
|
|
|
- синтаксис как идеалистическая бюрократия.
|
|
|
|
|
|
@@ -30,7 +30,7 @@
|
|
|
|
|
|
Противоречие: Простые типы не отражают сложность мира. Возникает потребность в составных. Простые типы поглощаются составными.
|
|
|
|
|
|
-`struct` , `class` , `tuple`
|
|
|
+`struct` , `type` , `tuple`, `list`
|
|
|
|
|
|
Кроме того, `Целое` — как простой тип не просто число, а объект с поведением. Поведение объекта, способы взаимодействия с миром определяются свойствами самого объекта. С другой стороны, те же свойства объекта диалектически накладывают ограничения на тот же объект.
|
|
|
|
|
|
@@ -103,59 +103,55 @@
|
|
|
Нет `string` . Есть `Имя` , `Хэш` , `Запрос` , `Ответ` .
|
|
|
|
|
|
```prolet
|
|
|
-(тип Рубль Рубля Рублей (// синонимы типа)
|
|
|
- @_база Целое (// Абстракция в основе типа)
|
|
|
+(тип Рубль или Рубля или Рублей (// синонимы типа)
|
|
|
+ @_база Целое (// Абстракция в основе типа)
|
|
|
@_диапазон (0 999_999_999) (// Допустимый диапазон на базе абстрактного типа)
|
|
|
@_операции (слож выч)) (// Допустимые операции над конкретным типом)
|
|
|
```
|
|
|
|
|
|
Примитив не уничтожен, но воспроизведён на новом уровне — как осмысленная категория.
|
|
|
|
|
|
-### Онтологическое уточнение: атрибут `@база Целое`
|
|
|
+### Онтологическое уточнение: свойство `@_база Целое`
|
|
|
|
|
|
-Атрибут `@база` опирается на математическую абстракцию `Целое` , но по отношению к материалистичному миру является сущим _только в рамках математического дискурса_.
|
|
|
+Свойство `@_база` опирается на аппаратную абстракцию `Целое`, но по отношению к материалистичному миру является сущим _только в рамках математического дискурса_. Т.е. математические типы не ограничиваются типом `Целое`. Но этим типом ограничивает аппаратура.
|
|
|
|
|
|
-Это — _ключевое_ уточнение, которое позволяет не отступать от диалектического материализма, но признать относительную самостоятельность математического мышления как _специфической формы отражения реальности_.
|
|
|
+Это — _ключевое_ уточнение, которое позволяет не отступать от диалектического материализма, но признать относительную самостоятельность аппаратного, равно и математического мышления как _специфической формы отражения реальности_.
|
|
|
|
|
|
### Интерпретация
|
|
|
|
|
|
-```text
|
|
|
-ПОНЯТИЕ | СТАТУС В ОНТОЛОГИИ PROLET
|
|
|
-----------------|---------------------------------------------------------------
|
|
|
-Целое | Не первичная данность, а результат высшего обобщения практики счёта
|
|
|
- | (считали камни, яблоки, дни — и выделили общую форму)
|
|
|
-----------------|---------------------------------------------------------------
|
|
|
-Математический | Специфическая социальная практика, в которой абстракция (вроде `Целое`)
|
|
|
-дискурс | обращаются как сущее, хотя она и есть специфичная форма материи
|
|
|
-----------------|---------------------------------------------------------------
|
|
|
-@база | Указание на форму, заимствованную из математического дискурса, но
|
|
|
- | используемую как инструмент для организации сущего
|
|
|
-```
|
|
|
+ПОНЯТИЕ| СТАТУС В ОНТОЛОГИИ PROLET
|
|
|
+ -------- | -----------------------------------
|
|
|
+`Целое` | Не первичная данность, а результат высшего обобщения практики счёта (считали камни, яблоки, дни — и выделили общую форму)
|
|
|
+Аппаратный дискурс | Специфическая техническая практика, в которой абстракция (вроде `Целое`) обращаются как сущее, хотя она и есть специфичная форма материи
|
|
|
+@база | Указание на форму, заимствованную из математического дискурса, но используемую как инструмент для организации сущего
|
|
|
|
|
|
Это — не признание платонизма, а признание автономии отражения.
|
|
|
|
|
|
-Как язык отражает мир, так и математика — отражает количественные отношения, но не существует вне практики.
|
|
|
+Как язык отражает мир, так и аппаратура, так и математика — отражает количественные отношения, и эти отношения не существуют вне практики.
|
|
|
|
|
|
📜 Принципы объявления типов `prolet`
|
|
|
|
|
|
- Тип — только материализованная форма сущего
|
|
|
- `Целое`, `Строка`, `Дробное`, `Логическое` — не типы, а базовые абстракции
|
|
|
-- `база` — не наследование, а заимствование формы из дискурса математики
|
|
|
+- `@база` — не наследование, а заимствование формы из дискурса аппаратного обеспечения
|
|
|
- Тип всегда имеет социальный, экономический или технический контекст
|
|
|
-- Без атрибутов, отражающих практику — _нет типа_
|
|
|
-- Определение вида `(тип Целое ...)` — ошибка онтологии, запрещено
|
|
|
+- Без свойств, отражающих практику — _нет типа_
|
|
|
+- Определение вида c использованием аппаратного типа `(тип Целое ...)` — ошибка онтологии, запрещено
|
|
|
|
|
|
## Стадия 2: Сложное — как единство противоположностей
|
|
|
|
|
|
-Структура — не просто набор полей, а единство противоречий:
|
|
|
+Структура — не просто набор свойств, а единство противоречий:
|
|
|
|
|
|
```prolet
|
|
|
-(тип Роль
|
|
|
+
|
|
|
+(// любой тип имеет одно значение,
|
|
|
+не число свойств может быть любым)
|
|
|
+(тип Роль или Права
|
|
|
@_обязательно
|
|
|
@_база Перечисление
|
|
|
@_выбор_ (Админ Пользователь Гость)
|
|
|
@значение Гость (// По умолчанию, можно менять)
|
|
|
- @_док "Роль пользователя в системе")
|
|
|
+ @_док "Роль пользователя в системе"
|
|
|
|
|
|
(тип ПользовательНомер
|
|
|
@_обязательно
|
|
|
@@ -163,10 +159,9 @@
|
|
|
@_диапазон (1 999_999_999)
|
|
|
@_автоИнкремент
|
|
|
@_уникально
|
|
|
- @_док "идентификация пользователя в системе")
|
|
|
+ @_док ( "идентификация пользователя в системе")
|
|
|
|
|
|
-(тип Имя
|
|
|
- @_обязательно
|
|
|
+(тип Имя или Название
|
|
|
@_база Строка
|
|
|
@_умолчание "Иван"
|
|
|
@_док "идентификация пользователя в системе")
|
|
|
@@ -180,84 +175,75 @@
|
|
|
)
|
|
|
```
|
|
|
|
|
|
-Поле в структуре может ссылаться только на практический тип — то есть на материализованное сущее.
|
|
|
-Прямая ссылка на базовую абстракцию (`Целое`, `Строка` и т.п.) — запрещена.
|
|
|
+Свойство в структуре может ссылаться только на практический тип — то есть на материализованное сущее (тип или структура).
|
|
|
+
|
|
|
+Прямая ссылка на аппаратную абстракцию вне явно обозначенных границ (`Целое`, `Вещ` и т.п.) — запрещена.
|
|
|
|
|
|
-Все атрибуты, помечены префиксами:
|
|
|
+Все свойства, помечены префиксами:
|
|
|
|
|
|
- `@_база` -- системный, нельзя изменить
|
|
|
- `@значение` -- пользовательский, можно изменять.
|
|
|
|
|
|
В приведённом синтаксисе достигается единство формы и содержания:
|
|
|
|
|
|
-- Разделение "атрибут vs поле" — идеализм, ведущий к ложному противопоставлению "сущности" и "её свойств".
|
|
|
+- Разделение "атрибут vs поле" — идеализм, ведущий к ложному противопоставлению "сущности" и "её свойств". В предлагаемом подходе всё является свойством.
|
|
|
- В реальности — есть только объект с характеристиками: у человека — имя, возраст, роль, статус, история.
|
|
|
- Нет "основных данных" и "метаданных" — есть все данные как единое сущее.
|
|
|
|
|
|
### Философский и практический смысл
|
|
|
|
|
|
-```text
|
|
|
-АСПЕКТ ОБЪЯСНЕНИЕ
|
|
|
------- ---------------------------
|
|
|
-Онтология Тип — не шаблон, а форма сущего в практике. Если в практике номер
|
|
|
- всегда уникален и присваивается автоматически, то эти свойства —
|
|
|
- часть его бытия, а не внешнее условие.
|
|
|
-
|
|
|
-Единство нормы Если ПользовательНомер используется в 10 структурах — не нужно 10 раз писать
|
|
|
- @уникально. Нарушение — на уровне типа, а не контекста.
|
|
|
-
|
|
|
-Безопасность Система гарантирует уникальность и обязательность на уровне типа,
|
|
|
- а не доверяет структуре "не забыть".
|
|
|
-
|
|
|
-Эволюция практики Если правило изменится (например, номер перестанет быть авто-инкрементным), —
|
|
|
- меняется один
|
|
|
-```
|
|
|
+АСПЕКТ | ОБЪЯСНЕНИЕ
|
|
|
+ ------ | ---------------------------
|
|
|
+Онтология | Тип — не шаблон, а форма сущего в практике. Если в практике номер всегда уникален и присваивается автоматически, то такие свойства — часть его бытия, а не внешнее условие.
|
|
|
+Единство формы | Если ПользовательНомер используется в 10 структурах — не нужно 10 раз писать `@уникально`. Нарушение — на уровне типа, а не контекста.
|
|
|
+Безопасность | Система гарантирует уникальность и обязательность на уровне типа, а не доверяет типу "не забыть".
|
|
|
+Эволюция практики | Если правило изменится (например, номер перестанет быть авто-инкрементным), — меняется одно свойство в типе
|
|
|
|
|
|
### Принципы проектирования в prolet
|
|
|
|
|
|
-- Тип несёт свои нормы: @обязательно, @уникально, @авто-инкремент, @умолчание — определяются в (тип ...)
|
|
|
+- Тип несёт свои нормы: `@обязательно`, `@уникально`, `@авто-инкремент`, `@умолчание` — определяются в (тип ...)
|
|
|
- Структура — композиция, а не конфигурация: она не задаёт правила, а использует уже заданные
|
|
|
-- Атрибуты в структуре — только контекстные: например, @источник, @момент, @ответственный, но не базовые свойства типа
|
|
|
-- Повторное указание атрибутов типа в структуре — избыточно и запрещено, но не запрещены атрибуты самого поля
|
|
|
-- Тип — законченная форма сущего, пригодная к использованию в любой структуре
|
|
|
+- Свойства в структуре — только контекстные: например, `@источник`, `@момент`, `@ответственный`, но не базовые свойства типа
|
|
|
+- Повторное указание свойств типа в структуре — избыточно и запрещено, но не запрещены свойства самого свойства (свойство структуры рассматривается как тип на своём уровне)
|
|
|
+- Тип — со всеми своими свойствами, законченная форма сущего, пригодная к использованию в любой структуре
|
|
|
|
|
|
## Форма 3: интерфейс — тип как отношение
|
|
|
|
|
|
```prolet
|
|
|
(интерфейс ИХранилище
|
|
|
@_док "Абстракция работы с хранилищем"
|
|
|
- (ПолучФайл (имя @фикс ИмяФайла) -> @фикс Результат Спис.Байт
|
|
|
+ (ПолучФайл (имя ИмяФайла @фикс) ->Результат Спис.Байт @фикс
|
|
|
@_док "Читает файл с диска")
|
|
|
(ЗаписатьФайл (имя @фикс ИмяФайла данные @фикс Спис.Байт) -> @фикс Результат Логическое
|
|
|
@_док "Записывает файл на диск")
|
|
|
(ЗакрытьХранилище)
|
|
|
)
|
|
|
|
|
|
-(ПолучИнтерфейс НовХранилище как ИХранилище -> мут хран)
|
|
|
-((ПолучФайл хран получить "test.txt") -> _)
|
|
|
+(уст (НовХранилище) @мут хран)
|
|
|
+(хран ПолучФайл "test.txt")
|
|
|
```
|
|
|
|
|
|
-Тип определяется не сущностью, а связями — как в диалектике.
|
|
|
+Интерфейс определяется не сущностью, а связями — как в диалектике.
|
|
|
|
|
|
- интерфейс — объявляет форму взаимодействия, а не математическую сигнатуру
|
|
|
-- Каждый метод — глагол, отражающий практику
|
|
|
-- Параметры: `(@имя Тип, @данные Тип)` — именованные, ссылаются на типы
|
|
|
+- Каждое действие — глагол, отражающий практику
|
|
|
+- Параметры: `(имя Тип, данные Тип)` — именованные, ссылаются на типы
|
|
|
- Возврат: (Результат Тип) — структура, отражающая результат практики
|
|
|
- Возвращаемый результат может отсутствовать
|
|
|
-- Все типы в интерфейсе — практические, определённые через (тип ...)
|
|
|
-- @_док — не обязателен для каждого метода и интерфейса, но можно потребовать обязательность на уровне проекта
|
|
|
-- Интерфейс не содержит реализации — только методы с параметрами и возвращаемые значения
|
|
|
+- Все типы в интерфейсе — практические, определённые через (тип, структ, ...)
|
|
|
+- @_док — не обязателен для каждого метода и интерфейса, но можно потребовать обязательность на уровне проекта или конкретного действия
|
|
|
+- Интерфейс не содержит реализации — только действия с параметрами и возвращаемые значения
|
|
|
|
|
|
## Онтологическая иерархия типов
|
|
|
|
|
|
```text
|
|
|
- Обобщённые абстракции (отрицание)
|
|
|
+ Математические типы (отрицание)
|
|
|
↓
|
|
|
Конкретные типы (противоположность)
|
|
|
↓
|
|
|
Структуры (синтез)
|
|
|
↓ ↘
|
|
|
- атрибуты методы
|
|
|
+ свойства действия
|
|
|
^
|
|
|
Интерфейсы
|
|
|
```
|