Logo

20 ноября 2013 г.

Тезисы к семинару на Embedded Meetup #2: Связь ООП и ФП

Статьи по теме

Развитие ПО отстает от железа

  • Развитие ПО экстенсивно, требует много рутинного труда.
  • Потеря бинарной совместимости из-за распространения скриптовых языков и платформ JVM и .NET.
  • При этом всё системное и системообразующее ПО написано на одном языке (и в одной стране).
  • Пример: большие накладные расходы WebSVN.

ООП, ФП и СУБД

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

Реализация

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

Постулаты

  • Точкой схождения всех абстракций является null.
  • Общий базовый класс (TObject) является обобщением (generic).
  • Условные типы TObject и Variant — одно и то же.

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

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

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