Memory management 什么是Dyon';什么是记忆模型?

Memory management 什么是Dyon';什么是记忆模型?,memory-management,rust,dyon,Memory Management,Rust,Dyon,该公司表示,它使用“生命周期”,而不是垃圾收集或手动内存管理。但是,这种寿命模型与铁锈所有权有何不同呢 由于缺少垃圾收集器,Dyon的内存模型有限。该语言旨在克服这一限制。-Dyon编程语言教程 这个模型到底有多大的局限性?是否有Dyon因此限制而无法运行的内存管理代码示例?链接中仅包含以下解释: 生命周期是关于引用的 生存期是关于存储在变量中的引用。所有引用都比存储在其中的变量更有效。变量不能存储对自身的引用,因为它不能超过自身 为了将引用放入变量中,生存期检查器必须知道该引用比该变量长 由于

该公司表示,它使用“生命周期”,而不是垃圾收集或手动内存管理。但是,这种寿命模型与铁锈所有权有何不同呢

由于缺少垃圾收集器,Dyon的内存模型有限。该语言旨在克服这一限制。-Dyon编程语言教程

这个模型到底有多大的局限性?是否有Dyon因此限制而无法运行的内存管理代码示例?

链接中仅包含以下解释:

生命周期是关于引用的 生存期是关于存储在变量中的引用。所有引用都比存储在其中的变量更有效。变量不能存储对自身的引用,因为它不能超过自身

为了将引用放入变量中,生存期检查器必须知道该引用比该变量长

由于使用寿命检测器,Dyon中的所有内存都是一个非循环图

因此,主要的限制是引用不能进行任何循环。也就是说,不可能表示循环节点列表或让子对象保留对其父对象的引用

这些限制也适用于锈蚀,但锈蚀也提供了解决办法。引用计数类型(
Rc
Arc
)与弱引用相结合(请参阅),可以创建循环引用。循环也可以在
不安全的
构造之后进行,即原始指针

另请参见(特定锈蚀,但大多数原则适用):


在我看来,Dyon规则比Rust的规则更具限制性,因为在Rust中,您可以在安全代码中创建自引用结构,但Dyon声称可以防止这种情况发生(即,引用必须严格超过它所存储的变量的寿命,而在Rust中,它只需要至少与变量的寿命一样长)。