Валерий Крылов (justy_tylor) wrote,
Валерий Крылов
justy_tylor

Языки, онтологии и время

Большинство традиционных языков программирования построено в онтологической парадигме 3D+1, близкой к естественному восприятию времени человеком. Свойства наблюдаемых в мире феноменов реифицируются фреймами времени до/после, вплоть до соотнесения этих до/после с некими таймерами ("в 15:45 по московскому времени", "через 15 секунд после начала эксперимента", etc).

x = 5;
x = 19;
x = x*32;

В приведённом выше примере фреймы до/после подразумеваются автоматически.

Pure functional языки используют парадигму презентизма. В них нет прошлого и будущего, но есть "что-то, воспринимаемое сейчас как прошлое" и "что-то, предлагаемое сейчас как будущее", как функция от него. Для правильной работы программы необходимо расставить функции из "до" в "после" - вручную или используя специфичные паттерны языка (монады в Haskell).

Очень редко в языке появляется само понятие времени. В качестве примера можно вспомнить Lucid.

Но пока нет ни одного языка, использующего 4D парадигму. Хотя именно эта парадигма больше всего подходит для описания систем эффектов: переменные как целые и их значения как темпоральные части. С 4D можно удобно рассматривать систему, находясь над её пространством и временем. Появляется возможность нативно моделировать меняющиеся во времени системы прямо в языке. Однако, потребуется мощная система синхронизации состояний миров, поддерживающая как частные случаи описаний кусочков этих миров не только строгие и ленивые вычисления, но и Maya Dependency Graph, а также иные push, pull и push/pull модели графов зависимостей. Как в пределах локальной машины, так и в распределённых сетях.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 22 comments