02_80.md 4.9 KB

pro-017 Контексты вычислений

Ранее контексты встречались в примерах кода prolet: макросы, функции, типажи и процессы. Теперь контексты будут обозначены явно, как тип вычислительных групп.

::: info В prolet больше нет «меток» или «аннотаций», висящих в воздухе.
Есть контекстматериальная и логическая среда, в которой возможны определённые действия.

:::


Почему «контекст» — правильное понятие

  1. Философски
    Контекст — это условие возможности действия.
    Без контекста нет смысла, нет метода, нет преобразования.
    Это материалистическая категория: действие невозможно вне условий его осуществления.
  2. Практически
    Когда программист пишет:

    (Пользователь СтатусОбновить "онлайн")
    

— программист не просто «вызываете метод у типа», а входит в контекст Пользователь, где определены действия:

- СтатусОбновить,

- Сохранить,

- Удалить и т.д.

  1. Вне этого контекста — эти действия недопустимы.
  2. Архитектурно
    • Компилятор может ограничить доступные действия строго по текущему контексту.
    • IDE — показывать только валидные методы.
    • Безопасность — запрещать вызовы, не принадлежащие контексту.
  3. Отказ от идеализма «универсальных функций»
    В prolet нет «голых функций», применимых везде.
    Есть действия, привязанные к контексту — как в реальном мире:
    • «писать» — в контексте «автор»,
    • «лечить» — в контексте «врач»,
    • «шифровать» — в контексте «Ключ» или «Сообщение».

Примеры

(Сообщение Шифровать ключ)
(Ключ Применить сообщение)
(БазаДанных Сохранить запись)
(Запись Удалить номер)

Здесь:

  • Сообщение — не тип, а контекст, в котором возможно действие Шифровать,
  • Ключконтекст, в котором можно Применить что-то,
  • попытка написать (Ключ Шифровать ...)ошибка, потому что действие Шифровать не принадлежит контексту Ключ.

Связь с @рез

Когда программист пишет:

(СоздатьПользователя "Алексей")
(Пользователь СтатусОбновить @рез "онлайн")

— первое выражение даёт @рез типа Пользователь,
— второе выражение входит в контекст Пользователь,
— и только в этом контексте разрешено действие СтатусОбновить.

Это — естественная цепочка: результат → контекст → действие.


Вывод

В prolet не существует технократического «тег», есть философски и практически насыщенное понятие «контекст».

prolet — это не язык с аннотациями, а язык практики, где:

::: success Каждое действие возможно только в своём контексте,
и контекст определяется материей, а не формой.

:::

Это соответствует духу диалектического материализма и делает язык ориентированным не на объекты, а на условия их преобразования.

prolet поддерживает абстракции, но как инструмент освобождает от абстрактного мышления, которое не происходит из практики.