2011-05-20 85 views
3

或者非功能/非內存管理語言中的功能更強大的風格。 有哪些技術可以解決中間垃圾等問題?在lazynizess/thunk分配的內存後清理。性能(因爲你不能輕易地共享資源之間的不可變變量,如果你必須跟蹤它的進度釋放它(智能指針?)是否有任何功能語言沒有垃圾回收

回答

2

您可能會對線性或唯一類型的編程語言感興趣,它們可以管理資源(特別是內存)。最近的例子:ATSLinearML。在「基於區域的內存管理」(例如Cyclone)方面已經有人嘗試過,但它們還沒有被提出 - 區域也允許(早期的)內存回收,但它們還不夠(例如, ,有些程序在運行基於區域的內存管理時會表現出令人無法接受的性能)。我想,這兩種方案可能是混合的。

回到你的問題,一些ATS程序可以運行而無需垃圾回收。 (我不會說這樣的程序是用「功能性」風格編寫的,例如SML,但是是一種強制性和一階功能風格)。

1

我能想到的唯一相關的事情是如何Mlton是如何消除垃圾的重要部分從理論上講,應該有可能實現一個編譯器,它將把不可管理和未註釋的指針泄漏視爲錯誤,然後人們可以在完全手動的內存中使用許多函數式編程技術管理設置

+1

http://www.itu.dk/research /mlkit/index.php/Main_Page也是這樣 – cannedprimates 2011-05-20 13:18:24