This paper studies useful sharing, which is a sophisticated optimization for lambda-calculi, in the context of call-by-need evaluation in presence of open terms. Useful sharing turns out to be harder in call-by-need than in call-by-name or call-by-value, because call-by-need evaluates inside environments, making it harder to specify when a substitution step is useful. We isolate the key involved concepts and prove the correctness and the completeness of useful sharing in this setting.
翻译:本文研究有用的共享,这是在公开条件下逐个需求的评估背景下对羊肉卡库利的一种精密的优化。 有益共享在按需求逐个呼叫时要比按需求逐个呼叫或逐个呼叫时更为困难,因为按需求逐个呼叫评估环境内部环境,使得更难确定何时可以采取替代步骤。 我们孤立了所涉及的关键概念,并证明了在此背景下进行有益共享的正确性和完整性。