Вступ
ЧасописМавки

Теорія Мавки і керування памʼятю

Теорія Мавки не просто красива. Теорія Мавки цікавий інструмент для опису різних концептів програмування.

Ось, наприклад, пояснення різних способів керування памʼятю використовуючи Теорію Мавки:

  1. Обʼєкт існує доти доки є субʼєктом хоч одного середовища. Або іншими словами, коли жоден субʼєкт не вказує на якийсь обʼєкт, то цей обʼєкт рахується як непотрібний і утилізатор може сміло його звільняти. Це як в Мавці чи JavaScript.

  2. Обʼєкт існує незалежно від того, в скількох середовищах він є субʼєктом. Програміст має самостійно вказувати коли звільняти обʼєкт і впевнитись що жоден субʼєкт не вказує на цей обʼєкт. Це як в Цілі чи C під час використання malloc.

  3. На один обʼєкт лише один субʼєкт. Програміст має вручну вказувати переміщення обʼєкта в середовищі чи між середовищами. Якщо програміст не перемістить обʼєкт, то він звільниться разом із видаленням субʼєкта. Щось схоже є в Rust.

Властивість обʼєкта теж є субʼєктом, відповідно обʼєкт можна вважати середовищем, як і середовище обʼєктом

Оновлення 15.12.2024! Трохи неточність в першому пункті: обʼєкт може бути субʼєктом самого себе, тому він не звільниться як описано. Якщо обʼєкт є субʼєктом хоч одного середовища, до якого можна отримати доступ з першого (глобального, найвищого) середовища, то він вважається як потрібний. Інакше – звільняється. Це те саме, що кожен існуючий обʼєкт є субʼєктом першого (глобального, найвищого) середовища. Це ідеальний опис. Тому треба мати на увазі, втілюючи це в коді, що зазвичай є різні додаткові моменти, які враховуються.


Написав Давид. Опубліковано 04.12.2024. Оновлено 15.12.2024.