When Lifetimes Liberate: A Type System for Arenas with Higher-Order Reachability Tracking
He, Jia, Bao et al.
Static resource management in languages remains challenging due to tensions among control, expressiveness, and flexibility. Region-based systems [Grossman et al . 2002; Tofte et al. 2001] offer bulk deallocation via lexically scoped regions, where all allocations follow a stack discipline. However, both regions and their resources are second-class, and neither can escape its scope nor be freely returned. Ownership and linear type systems, exemplified by Rust [Clarke et al. 2013], offer non-lexical lifetimes and robust static guarantees, but rely on invariants that limit higher-order patterns and expressive sharing.
In this work, we propose a new type system that unifies these strengths. Our system treats all heap-allocated resources as first-class values, while allowing programmers to control lifetime and granularity through three allocation modes: (1) fresh allocation for individual, non-lexical references; (2) subsequent coallocation grouping resources collectively within shadow arenas; and (3) scoped allocation with lexically bounded lifetimes following stack discipline. Regardless of mode, all resources share a uniform type and have no distinction for generic abstractions, preserving the higher-order parametric nature of the language.
Obtaining static safety in higher-order languages with flexible sharing is nontrivial. We address this by extending reachability types [Wei et al. 2024] to collectively track first-class resources, and by adopting flow-insensitive deallocation reasoning for selective stack discipline. These mechanisms yield Aq<: and {A}q<: atop, both formalized and proven type safe and memory safe in Rocq.
academic
जब लाइफटाइम्स मुक्त करें: उच्च-क्रम पहुंचनीयता ट्रैकिंग के साथ एरेनास के लिए एक प्रकार प्रणाली
स्थिर संसाधन प्रबंधन प्रोग्रामिंग भाषाओं में अभी भी चुनौतीपूर्ण है, मुख्य रूप से नियंत्रणीयता, अभिव्यक्ति और लचीलेपन के बीच तनाव के कारण। क्षेत्र-आधारित प्रणालियां शब्दकोशीय दायरे वाले क्षेत्रों के माध्यम से बल्क रिलीज प्रदान करती हैं, लेकिन क्षेत्र और उनके संसाधन दोनों ही द्वितीयक-श्रेणी के नागरिक हैं, जो दायरे से बच नहीं सकते या स्वतंत्र रूप से वापस नहीं आ सकते। Rust द्वारा प्रतिनिधित्व की गई स्वामित्व और रैखिक प्रकार प्रणालियां गैर-शब्दकोशीय लाइफटाइम्स और मजबूत स्थिर गारंटियां प्रदान करती हैं, लेकिन निर्भर अपरिवर्तनीयताएं उच्च-क्रम पैटर्न और अभिव्यक्ति साझाकरण को सीमित करती हैं।
यह कार्य इन लाभों को एकीकृत करने वाली एक नई प्रकार प्रणाली प्रस्तावित करता है। यह प्रणाली सभी हीप आवंटित संसाधनों को प्रथम-श्रेणी मानों के रूप में मानती है, जबकि प्रोग्रामर को तीन आवंटन मोड के माध्यम से लाइफटाइम्स और दानेदारपन को नियंत्रित करने की अनुमति देती है: (1) व्यक्तिगत गैर-शब्दकोशीय संदर्भों का नया आवंटन; (2) छाया एरेनास के भीतर सामूहिक रूप से समूहीकृत संसाधनों का बाद का सह-आवंटन; (3) स्टैक अनुशासन का पालन करने वाली शब्दकोशीय सीमा लाइफटाइम्स का दायरा आवंटन। किसी भी मोड को अपनाने के बावजूद, सभी संसाधन एकीकृत प्रकार साझा करते हैं, सामान्य अमूर्तता में अविभाज्य, भाषा की उच्च-क्रम पैरामीटरीकरण विशेषताओं को बनाए रखते हैं।
यह अनुसंधान उच्च-क्रम कार्यात्मक भाषाओं में सुरक्षित, लचीले और नियंत्रणीय संसाधन प्रबंधन को लागू करने की मूल समस्या को हल करने का प्रयास करता है। पारंपरिक विधियों को निम्नलिखित दुविधाओं का सामना करना पड़ता है:
स्टैक बनाम हीप आवंटन का संतुलन: स्टैक मानों में कठोर शब्दकोशीय लाइफटाइम्स होती हैं, सुरक्षित और कुशल लेकिन अनिवार्य रूप से द्वितीयक-श्रेणी के नागरिक; हीप आवंटन स्वतंत्र रूप से प्रवाहित होने वाले प्रथम-श्रेणी मान उत्पन्न करते हैं, लेकिन पूर्वानुमानित रिलीज नियंत्रण का त्याग करते हैं।
मौजूदा प्रणालियों की सीमाएं:
क्षेत्र-आधारित प्रणालियां (जैसे MLKit, Cyclone): बल्क रिलीज प्रदान करती हैं लेकिन क्षेत्र और संसाधन दोनों ही द्वितीयक-श्रेणी के नागरिक हैं
स्वामित्व प्रकार प्रणालियां (जैसे Rust): गैर-शब्दकोशीय लाइफटाइम्स प्रदान करती हैं लेकिन उच्च-क्रम पैटर्न और अभिव्यक्ति साझाकरण को सीमित करती हैं
पहुंचनीयता प्रकार प्रणालियां: उच्च-क्रम कार्यों का समर्थन करती हैं लेकिन दूरदर्शी संरचना सीमाओं से प्रभावित हैं, चक्रीय भंडारण संरचनाओं को संभाल नहीं सकतीं
लेखक विभिन्न संसाधन प्रबंधन रणनीतियों के लाभों को एकीकृत करना चाहते हैं: स्टैक अनुशासन की सुरक्षा, उच्च-क्रम भाषा की अभिव्यक्ति, और संसाधनों को प्रथम-श्रेणी इकाइयों के रूप में मानने की लचीलापन।
एकीकृत संसाधन प्रबंधन: सभी मेमोरी संसाधन एकल संदर्भ प्रकार के साथ प्रथम-श्रेणी मान हैं, जो स्टैक-शैली और हीप आवंटन को अमूर्त करते हैं, ग्राहक कोड को संदर्भों के विशिष्ट भंडारण मॉडल के प्रति सामान्य रहने की अनुमति देते हैं।
नियंत्रण की लचीलापन: मेमोरी संसाधन उपयोगकर्ता नियंत्रण के माध्यम से गैर-शब्दकोशीय या शब्दकोशीय बन सकते हैं, व्यक्तिगत या सामूहिक हो सकते हैं, और कोई प्रकार अंतर नहीं है।
स्थिर सुरक्षा गारंटियां: पहुंचनीयता प्रकार मेमोरी संसाधन प्रवाह को ट्रैक करते हैं और उनके सुरक्षित उपयोग की गारंटी देते हैं; उपयोगकर्ता प्रवाह-असंवेदनशील तर्क के माध्यम से चयनात्मक स्टैक अनुशासन लागू कर सकते हैं ताकि पूर्वानुमानित रिलीज और मुक्त-के-बाद-उपयोग त्रुटियों की अनुपस्थिति सुनिश्चित हो सके।
अभिव्यक्ति उच्च-क्रम विशेषताएं: प्रणाली परिवर्तनशील साझाकरण और चक्रीय भंडारण संरचनाओं के साथ उच्च-क्रम कार्यों का समर्थन करती है, पूर्व पहुंचनीयता प्रणालियों की अभिव्यक्ति से परे।
प्रमेय 4.1 (प्रगति): यदि [∅ | Σ] φ ⊢ t : Q और Σ ok,
तो t एक मान है या ऐसे t', σ' मौजूद हैं कि t | σ → t' | σ'
प्रमेय 4.2 (संरक्षण): यदि प्रकार-अच्छे पद में कमी होती है,
तो विस्तारित प्रकार पर्यावरण मौजूद है जिससे कमी परिणाम अभी भी प्रकार-अच्छा है
{ // दायरा शुरुआत
val a = new Ref() scoped
val c1, c2, c3 = new Ref(f) at a
c1 := x => { (!c2)(x) } // चक्र बनाएं
c2 := x => { (!c3)(x) }
c3 := x => { (!c1)(x) }
} // बल्क रिलीज {a, c1, c2, c3}
चक्रीय संदर्भ संरचनाओं को सुरक्षित रूप से निर्माण और रिलीज करने का प्रदर्शन करता है।
पेपर पहुंचनीयता प्रकार, एरेना-आधारित संसाधन प्रबंधन और स्टैक अनुशासन को सफलतापूर्वक एकीकृत करता है, उच्च-क्रम भाषाओं में सुरक्षित संसाधन प्रबंधन के लिए एक हल्का और अभिव्यक्ति आधार प्रदान करता है।
सैद्धांतिक योगदान महत्वपूर्ण: स्टैक अनुशासन, अभिव्यक्ति साझाकरण, प्रथम-श्रेणी संसाधन और उच्च-क्रम कार्यों के प्रतिच्छेदन को एकीकृत प्रणाली में लागू करने वाला पहला
तकनीकी नवाचार प्रमुख: छाया एरेनास और मोटे दानेदार पहुंचनीयता ट्रैकिंग महत्वपूर्ण नवाचार हैं
औपचारिक कठोरता: पूर्ण यांत्रिक प्रमाण परिणामों की विश्वसनीयता बढ़ाते हैं
अभिव्यक्ति में वृद्धि: पूर्व पहुंचनीयता प्रकार प्रणालियों की दूरदर्शी संरचना सीमाओं को दूर करता है
यह कार्य प्रोग्रामिंग भाषा सिद्धांत क्षेत्र में महत्वपूर्ण है, संसाधन प्रबंधन के लिए नई सैद्धांतिक नींव प्रदान करता है, भविष्य की प्रोग्रामिंग भाषा डिजाइन को प्रभावित कर सकता है। विशेष रूप से सटीक संसाधन नियंत्रण की आवश्यकता वाले सिस्टम प्रोग्रामिंग क्षेत्र के लिए, यह विधि नई संभावनाएं प्रदान करती है।