02_80.md 4.9 KB

pro.02_80 Контексты вычислений

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

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

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

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

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

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

  • СтатусОбновить,
  • Сохранить,
  • Удалить и т.д.

Вне этого контекста — эти действия недопустимы.

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

Примеры

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

Здесь:

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

Связь с @рез

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

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

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

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

Вывод

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

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

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

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

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