# pro.01_55 Диалектика формы языка программирования

В качестве базовой реализации языка программирования **prolet** принята форма заключение всех сущностей в круглые скобки. На первом месте стоит контекст, имеющий смысл "в заданных границах исполни действие в скобках". Единственная форма, не имеющая контекста -- пара круглых скобок: контекст отменяющий результат (см. далее).

Синтаксис закрепляет онтологический принцип в форме языка.

> 💡 «Исполни контекст в скобках» — это не инструкция, это — утверждение о природе конкретного вычисления как материи в движении.

Разберём решение в свете диалектического материализма, и закрепим его как фундаментальную аксиому языка **prolet**.

## Онтологическая основа: вычисление как процесс

Принцип:

> Только процесс может породить результат.
> Нет "значения без действия", нет "сущего без движения".

Форма `(%контекст %возможно_действие %возможно_аргументы...)` — выражает единство формы и содержания:

- Круглые скобки — граница процесса, как диафрагма в лёгких в разных положениях, разделяющая состояние на вдох и выдох.
- Первый элемент *контекст* — ограничитель и цель процесса, смысловая нагрузка всей формы, вектор направления, обязателен кроме описанного случая выше.
- Второй элемент "возможно_действие" -- действие, допустимое в текущем контексте, необязательный параметр;
- Остальное — аргументы — необязательные материалы, подвергаемые преобразованию.

Это — не просто вызов функции, это — организация труда над данными.

## Контекст как руководящая сила процесса

Контекст — не синтаксическое украшение, он — руководящее начало, идеологический центр процесса.

- `(фн ...)` -- контекст организация труда по преобразованию, труд через установление порядка;
- `(атом ...)` -- контекст организации протонов и нейтронов, создание сложных форм материи;
- `(если ...)` -- контекст поиска сущего в практике, реализация диалектики бытия;
- `(... @система ...)` -- свойство, задающее условия существования предельно конкретной истины, ограничивает границы возможного конкретного предметного труда

> 💡 **Контекст** — это границы процесса и руководящая роль в процессе, его пространство возможного: как управляющий центр организует ресурсы, руководит исполнением, контролирует процесс и определяет форму результата процесса, но не конкретный результат процесса.

## Круглые скобки — диалектическая граница состояний

Скобки — не просто синтаксис, они — отражение закона перехода количества в качество.

До скобок:

- Данные — потенциальность,
- Функция — возможность.

Внутри скобок: проявление борьбы и единства противоположностей:

- данные и алгоритм,
- память и процессор,
- декларация и действие.

После скобок:

- Результат — новое качество,
- Состояние изменилось — развитие произошло.
- Скобки — не разделители, они — граница скачка, момент, когда количество (аргументы, посредством алгоритмов) переходит в качество (результат).

## Единая форма для всех процессов — отражение единства бытия

Отказ от множества синтаксисов (как в `Rust`, `Pascal`, `Python`) в пользу единой формы `(%контекст ...)` — это пример диалектического решения.

### Вычисление

```prolet
(фн CложитьКм (Км a Км b) Км(
    (Слож a b)
    (вернуть рез)
    )
)
```

## Определение атома (структуры)

```prolet
(атом Пользователь
    @имя     Имя
    @возраст Возраст)
```

## Условие

```prolet
(если (Сравнить x > 0)
    тогда (Напечатать "положительно"))
```

## Цикл

```prolet
(для x в Данные
    (Удвоить х)(уст результат)
    (ОтправитьПоПочте результат))
```

## Диалектический процесс творчества

Форма одна — содержание разное, но все они — процессы в рамках конкретного контекста, все они — формы движения материи.

> 💡 Это — единство противоположностей в синтаксисе: разные по смыслу операции — объединены границей конкретного контекста.

## Почему именно круглые скобки? Материалистическое обоснование

Не фигурные, не квадратные, не без скобок — именно круглые.

- Они замкнуты — отражают целостность процесса, `всё имеет своё начало и свой конец`.
- Нет углов — символизируют бесконечность форм движения в рамках единого бытия.

Скобки опираются на S-выражения, но это не традиция `Лиспа`, это не повторение его, а диалектическое развитие:

- У **Лиспа**: `(выражение)` — имеет невыразительную форму, часто архаично и местами нарушает единый подход.
- В **prolet**: `(%контекст ...)` — наделяется одной формой, но разными смыслами.
- Круг — форма завершённого движения. В нём нет начала и конца — только непрерывное движение с заключённым в него развитием и переходом в рамках одной всеобщей формы.

## Архитектурные последствия решения

### Все конструкции — процессы и функции

Даже определение протонов и нейтронов — не декларация, а процесс создания категории бытия.

Даже комментарий — является процессом:

```prolet
(// Этот модуль отвечает за безопасность пользователей)
```

В данном случае, комментарий -- это не физически выполняемый контекст, а контекст на этапе компиляции, который при оптимизированный сборке может быть полностью исключён после итоговой сборки программы.

Также определение протонов и нейтронов, атомов и спецификаций -- это процессы на этапе компиляции, которые могут быть оптимизированы и исключены в финальной сборке.

| Элемент                   | Этап компиляции                                   | Этап выполнения  | Влияние на бинарный файл |
| -------------------------------- | --------------------------------------------------------------- | ------------------------------ | --------------------------------------------- |
| **Комментарий** | Генерация документации                     | ❌ Не выполняется | ❌ Исключается                     |
| **Атом**               | Статическая проверка, оптимизация | ❌ Не выполняется | ✅ Оптимизирован                 |
| **Спецификация**    | Статическая проверка                         | ❌ Не выполняется | ✅ Сохраняется                     |
| **Код**                 | Генерация бинарного файла                | ✅ Выполняется      | ✅ Сохраняется                     |

### Нет "пассивного кода"

Всё, что в скобках — должно быть исполнено, даже если эффект — регистрация, документирование, проверка.

## Расширяемость через контексты

Новый тип контекста — новая форма организации труда. Пример:

```prolet
(ПрцПарал ОбогатитьДанные
    (загрузить)
    (индексировать))

(прц ОбновитьСчёт(
    (обновить-счёт)
    (отправить-уведомление))
)
```

Язык не растёт за счёт синтаксиса, а за счёт семантики контекстов.

## 💡 Педагогическое значение формы

Для новичка:

- Легко запомнить: всё — в скобках, первое — что возможно сделать.
- Не нужно учить 10 синтаксисов.
- Учится мыслить процессуально, а не декларативно. В конкретных материальных условиях.

Для мастера:

- Видит: вся система — сеть процессов;
- Может анализировать потоки, оптимизировать, рефакторить;
- Может бесшовно расширять ядро языка.

## 🎯 Заключение: (%контекст ...) как онтологическая аксиома `prolet`

> ✅ Текущее синтаксическое решение — не техническое, но — философское, политическое, революционное.

`(%контекст ...)` — это материалистическая формула вычисления:

- Контекст — знание мира, форма организации действия, руководство процессом,
- Аргументы — материя, подлежащая преобразованию,
- Скобки — граница процесса, скачок, развитие.

> 💡 Это — не синтаксис, это — закон языка,

- как закон перехода количества в качество,
- закон отрицания отрицания,
- закон единства и борьбы противоположностей.

### Декларация

- В языке **prolet** всякая конструкция есть *контекст*.
- Всякий *контекст* начинается с имени и заключён в круглые скобки.
- Контекст определяет границы и смысл, скобки — форму движения.
- Нет контекста — нет и конкретного бытия.
