Logo

Функциональное программирование на Канторе

Трактовка понятий функционального программирования (ФП) в языке Кантор, связь с объектно-ориентированным программированием (ООП).

ООП, ФП и СУБД

  • Классы — это функции от состояния , объекты — само состояние.
  • Переменная (объект) — функция, реализованная памятью.
  • Свойство — функция, имеющая реализацию либо кодом, либо памятью, либо и кодом, и памятью.
  • Всё это похоже на СУБД:
    • Представление → функция.
    • Таблица → объект → переменная.
    • Материализованное представление → представление и таблица одновременно → свойство.

Функциональное программирование

  • Переменная — это функция, реализованная памятью. Понятие переменной в Канторе относится к разделу ФП.
  • Кортеж — это функция с несколькими out-аргументами.

Понятия ООП, выраженные через ФП

  • Объект — это абстракция состояния. Объекты хранят состояние и могут его изменять в течение жизни. Задача объектов — хранить состояние между вызовами функций.
  • Для связи с внешним миром объекты имеют свойства. Читаемые свойства могут участвовать в функциональных вызовах, записываемые — только в процедурах. Свойства-переменные доступны на чтение и запись, являясь агрегированными объектами.
  • Каждое свойство определяется именем и набором параметров — сигнатурой (прототипом). Имя или параметры могут отсутствовать (быть null). Безымянное свойство является аналогом свойства по умолчанию в других языках программирования, а беспараметрическое свойство — командой или процедурой. Свойство без имени и параметров — сам объект — this.
  • Класс — это функция от состояния, определяемая как набор свойств. Задача класса — обеспечение согласованности состояния объекта.

Реализация в компиляторе

  • Язык имеет синтаксические средства для описания, как будет использоваться объект (чтение, запись, мутация, not null и пр.). Это работает для всех объектов без исключения (без «дырявых абстракций»), давая возможность строить граф достижимости.
  • Частичные вычисления нужны для избавления от сборки мусора при сохранении автоматического управления памятью. Машина частичных вычислений (суперкомпилятор?) строит код на основе графов достижимости.

Ссылки

См. также

Комментариев нет :

Отправить комментарий

Выбрав в выпадающем списке пункт «Имя/URL», можно оставить комментарий от своего имени без предварительной регистрации.