Тезисы к семинару на Embedded Meetup #2: Связь ООП и ФП
Статьи по теме
Развитие ПО отстает от железа
- Развитие ПО экстенсивно, требует много рутинного труда.
- Потеря бинарной совместимости из-за распространения скриптовых языков и платформ JVM и .NET.
- При этом всё системное и системообразующее ПО написано на одном языке (и в одной стране).
- Пример: большие накладные расходы WebSVN.
ООП, ФП и СУБД
- Классы — это функции от состояния , объекты — само состояние.
- Переменная (объект) — функция, имеющая реализацию памятью.
- Свойство — функция, имеющая реализацию либо кодом, либо памятью, либо и кодом, и памятью.
- Всё это похоже на СУБД:
- Представление → функция.
- Таблица → объект → переменная.
- Материализованное представление → представление и таблица одновременно → свойство.
Реализация
- Язык имеет синтаксические средства для описания, как будет использоваться объект (чтение, запись, мутация, not null и пр.). Это работает для всех объектов без исключения (без «дырявых абстракций»), давая возможность строить граф достижимости.
- Размещение объектов (переменных) в стеке или в куче выбирается компилятором на основе графа достижимости.
- Суперкомпиляция нужна для избавления от сборщика мусора при сохранении автоматического управления памятью. Суперкомпилятор строит код на основе графов достижимости.
Постулаты
- Точкой схождения всех абстракций является null.
- Общий базовый класс (TObject) является обобщением (generic).
- Условные типы TObject и Variant — одно и то же.
Комментариев нет :
Отправка комментария
Выбрав в выпадающем списке пункт «Имя/URL», можно оставить комментарий от своего имени без предварительной регистрации.