Preview

Труды Института системного программирования РАН

Расширенный поиск

Escape-анализ с экзистенциальными метками времени жизни

https://doi.org/10.15514/ISPRAS-2026-38(1)-6

Аннотация

Escape-анализ широко используется для обеспечения безопасности различных компиляторных оптимизаций и языковых возможностей. Для достижения лучшей точности и эффективности, особенно в интерпроцедурных сценариях, escape-анализ может быть интегрирован с системой типов. Однако, этот подход зачастую требует сложных и объёмных типовых аннотаций со стороны программистов.
В этой статье мы предлагаем основанный на системе типов метод escape-анализа, упрощающий контроль времен жизни типов данных путём использования экзистенциальных меток времени жизни. К тому же, наш метод включает в себя операцию минимума на метках времени жизни, что позволяет пользовательским типовым аннотациям точно отражать поток данных функций, упрощая написание таких аннотаций. И наконец, мы представляем прототип реализации соответствующего алгоритма проверки типов.

Об авторе

Андрей Сергеевич СТОЯН
Национальный исследовательский университет «Высшая школа экономики»
Россия

Аспирант. Сфера научных интересов: теория типов, дизайн языков программирования.



Список литературы

1. Blanchet B. Escape analysis for object-oriented languages: application to Java. ACM SIGPLAN Notices, vol. 34, no. 10, 1999, pp. 20–34. DOI: 10.1145/320384.320387.

2. Akhin M., Belyaev M. Kotlin language specification. Kotlin Language Specification, 2021.

3. Matsakis N.D., Klock F.S. The Rust language. Proceedings of the 2014 ACM SIGAda annual conference on High integrity language technology, 2014, pp. 103–104. DOI: 10.1145/2663171.2663188.

4. Lorenzen A., White L., Dolan S., Eisenberg R.A., Lindley S. Oxidizing OCaml with modal memory management. Proceedings of the ACM on Programming Languages, vol. 8, issue ICFP, 2024, pp. 485–5104. DOI: 10.1145/3674642.

5. Brachthäuser J.I., Schuster P., Ostermann K. Effects as capabilities: effect handlers and lightweight effect polymorphism. Proceedings of the ACM on Programming Languages, vol. 4, issue OOPSLA, 2020, pp. 1–30. DOI: 10.1145/3428194.

6. Boruch-Gruszecki A., Odersky M., Lee E., Lhoták O., Brachthäuser J. Capturing types. ACM Transactions on Programming Languages and Systems, vol. 45, no. 4, 2023, pp. 1–52. DOI: 10.1145/3622839.

7. Stoyan A. Supplementary code for this work. Available at: https://github.com/penguin-boxx/existential-escape-analysis-paper, accessed 05.02.2026.

8. Xie N., Cong Y., Ikemori K., Leijen D. First-class names for effect handlers. Proceedings of the ACM on Programming Languages, vol. 6, issue OOPSLA2, 2022, pp. 30–59. DOI: 10.1145/3563309.

9. Osvald L., Essertel G., Wu X., Alayón L.I.G., Rompf T. Gentrification gone too far? Affordable 2nd-class values for fun and (co-) effect. ACM SIGPLAN Notices, vol. 51, no. 10, 2016, pp. 234–251. DOI: 10.1145/2983990.2984009.

10. Brachthäuser J.I., Schuster P., Lee E., Boruch-Gruszecki A. Effects, capabilities, and boxes: from scope-based reasoning to type-based reasoning and back. Proceedings of the ACM on Programming Languages, vol. 6, issue OOPSLA1, 2022, pp. 1–30. DOI: 10.1145/3527320.


Рецензия

Для цитирования:


СТОЯН А.С. Escape-анализ с экзистенциальными метками времени жизни. Труды Института системного программирования РАН. 2026;38(1):71-78. https://doi.org/10.15514/ISPRAS-2026-38(1)-6

For citation:


STOYAN A.S. Type-based Escape Analysis with Existential Lifetimes. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2026;38(1):71-78. https://doi.org/10.15514/ISPRAS-2026-38(1)-6



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)