Есть ли какие-либо исследования (или лучшее использование) RAII в языках GC?

Примечание: RAII времени жизни объекта не использует / с областью действия блока RAII

Похоже, это возможно с использованием дополнительной категории gc, короткоживущие объекты (проверяйте категорию gc несколько чаще), долгоживущие объекты (проверяйте категорию gc реже) и объекты ресурсов (проверяйте категорию gc очень часто). Или, возможно, с дополнительным подсчетом ссылок gc для объектов ресурсов.

Похоже, что стиль using / with может иметь некоторые преимущества, продвигая более функциональный стиль (простите меня, если я ошибаюсь, и это не функциональный стиль) Ввод-вывод препятствует большому количеству операций ввода-вывода, разбросанных по месту, по сравнению с гибкостью объектно-ориентированного RAII (потому что это проще). Но некоторые проблемы, вероятно, требуют трудного отслеживания времени жизни ресурсов.

Есть ли причины, помимо избегания сложности и скорости gc, что этого не было сделано на основных языках? (Я понимаю, что некоторые языки используют подсчет ссылок как часть gc в своих основных реализации, и поэтому RAII может работать там, но поскольку я считаю, что их спецификация не определяет подсчет ссылок для некоторых типов объектов / или всех объектов, и что другие реализации, используемые людьми, не имеют подсчета ссылок, ограничивая использование RAII времени жизни объекта на этих языках.

PS: Есть ли у них RAII типа c ++ в perl?

9
задан Roman A. Taycher 6 October 2010 в 10:07
поделиться