Region-based memory management

被引:269
|
作者
Tofte, M
Talpin, JP
机构
[1] IRISA,F-35000 RENNES,FRANCE
[2] CNRS,URA 227,F-35000 RENNES,FRANCE
关键词
D O I
10.1006/inco.1996.2613
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
This paper describes a memory management discipline for programs that perform dynamic memory allocation and de-allocation. At runtime, all values are put into regions. The store consists of a stack of regions. All points of region allocation and de-allocation are inferred automatically, using a type and effect based program analysis. The scheme does not assume the presence of a garbage collector. The scheme was first presented in 1994 (M. Tofte and J.-P. Talpin, in ''Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages,'' pp. 188-201); subsequently, it has been tested in The ML Kit with Regions, a region-based, garbage-collection free implementation of the Standard ML Core language, which includes recursive datatypes, higher-order functions and updatable references L. Birkedal, M. Tofte, and M. Vejlstrup, (1996), in ''Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages,'' pp. 171-183. This paper defines a region-based dynamic semantics for a skeletal programming language extracted from Standard ML. We present the inference system which specifies where regions can be allocated and de-allocated and a detailed proof that the system is sound with respect to a standard semantics. We conclude by giving some advice on how to write programs that run well on a stack of regions, based on practical experience with the ML Kit. (C) 1997 Academic Press.
引用
收藏
页码:109 / 176
页数:68
相关论文
共 50 条
  • [1] Region-based memory management in cyclone
    Grossman, D
    Morrisett, G
    Jim, T
    Hicks, M
    Wang, YL
    Cheney, J
    [J]. ACM SIGPLAN NOTICES, 2002, 37 (05) : 282 - 293
  • [2] Region-based memory management for Mercury programs
    Phan, Quan
    Janssens, Gerda
    Somogyi, Zoltan
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2013, 13 : 959 - 1024
  • [3] Region-Based RTSJ Memory Management: State of the art
    Hamza, H.
    Counsell, S.
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (05) : 644 - 659
  • [4] Runtime Support for Region-Based Memory Management in Mercury
    Phan, Quan
    Somogyi, Zoltan
    Janssens, Gerda
    [J]. ISMM'08: PROCEEDINGS OF THE 2008 INTERNATIONAL SYMPOSIUM ON MEMORY MANAGEMENT, 2008, : 61 - +
  • [5] Garbage collection safety for region-based memory management
    Elsman, M
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (03) : 123 - 134
  • [6] Fast Escape Analysis for Region-based Memory Management
    Salagnac, G.
    Yovine, S.
    Garbervetsky, D.
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 131 : 99 - 110
  • [7] Region-based memory management for a dynamically-typed language
    Nagata, A
    Kobayashi, N
    Yonezawa, A
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2004, 3302 : 229 - 245
  • [8] Conditional correlation analysis for safe region-based memory management
    Wang, Xi
    Xu, Zhilei
    Liu, Xuezheng
    Guo, Zhenyu
    Wang, Xiaoge
    Zhang, Zheng
    [J]. ACM SIGPLAN NOTICES, 2008, 43 (06) : 45 - 55
  • [9] Conditional Correlation Analysis for Safe Region-based Memory Management
    Wang, Xi
    Xu, Zhilei
    Liu, Xuezheng
    Guo, Zhenyu
    Wang, Xiaoge
    Zhang, Zheng
    [J]. PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 45 - +
  • [10] Region-based memory management for real-time Java']Java
    Higuera, T
    Issarny, V
    Banâtre, M
    Cabillic, G
    Lesot, JP
    Parain, F
    [J]. FOURTH IEEE INTERNATIONAL SYMPOSIUM ON OBJECT-ORIENTED REAL-TIME DISTRIBUTED COMPUTING, PROCEEDINGS, 2001, : 387 - 394