對於 規則引入的程式碼爆炸,除了直接改成用CPS,傳統方式是引入一個local continuation來處理,這種continuation常叫做join point
let x := if0 (if0 (if0 0 0 1) 0 1) 0 1 in LARGE
我們轉換成
let j y := LARGE if0 (if0 (if0 0 0 1) 0 1) let x := 0 in j x let x := 1 in j x
然後以此類推,我們就不會產生重複的程式碼。然而join points也有很明顯的缺點,比如引入更多的allocation(lambda的runtime表示closure並不是免費的),並且阻止對 的最佳化,這往往導致實務編譯器必須考慮引入相應的join points algebra去處理一系列的轉換問題