我已經在python和sapid lisp本身中實現了一個小的lisp解釋器(在google代碼中是sapid lisp)。也許它的主要特點是通過異常實現尾部和相互遞歸優化。這裏的實現細節https://sites.google.com/site/sapidlisp/recursion-optimization。尋找描述通過異常進行尾遞歸優化的參考
優於標準技術的優點是適用於遞歸解釋器以獲得尾遞歸優化的有限更改。缺點可能是時機。
我發現了一個類似的技術在Python裝飾器(http://code.activestate.com/recipes/474088/)中使用。現在把這個技術放在它的上下文中,我正在尋找描述這種技術的引用,用於lisp或其他解釋語言。任何信息?
這裏提出的技術將飛尾遞歸調用轉換爲明確的while循環。我沒有辦法將它應用於非遞歸尾部調用。出於這個原因,我不確定標籤的變化是否相關。我錯了嗎? –