是什么阻止ghc将Haskell转换为连接编程语言(例如组合逻辑),然后仅对所有内容使用堆栈分配?根据Wikipedia的说法,从lambda演算到组合逻辑的转换是微不足道的,而且,级联编程语言可以仅依靠堆栈来进行内存分配。进行这种翻译从而消除Haskell和ocaml等语言的垃圾回收是否可行?这样做有不利之处吗?
编辑:移到这里/programming/39440412/why-do-functional-programming-languages-require-garbage-collection
该猫程序设计语言看起来像一个功能,基于堆栈的语言的例子。
—
PetrPudlák'16
这不是研究级别的问题,因为垃圾回收在编程语言的本科课程中有所涉及(及其需求)。请移至cs.stackexchange.com
—
Andrej Bauer
我的错。你知道我的问题的答案吗?
—
Nicholas Grasevski
我认为这个问题会有一定的研究水平的回应,因为我也记得在我的研究生时代也为此感到挣扎:像Haskell 这样的语言中的所有内容都看起来像一个函数应用程序,它一直存在于堆栈中。我认为,解释为什么必须使用闭包,为什么闭包存在于堆中以及也许“数据转义函数作用域”与之相关的问题会提供非常有用的答案(我不确定我是否有资格给出答案,不幸)。
—
Cody