Continuation-passing style, her fonksiyonun hesaplama sonucunu bir sonraki adımı temsil eden bir devam (continuation) fonksiyonuna ilettiği bir program dönüşüm tekniğidir. Doğrudan stil ile CPS arasındaki fark kavramsal olduğu kadar yapısaldır: doğrudan stilde bir fonksiyon değerini çağırana döndürürken, CPS dönüşümünde sonucu devam fonksiyonuna argüman olarak geçirir. Bir faktöriyel fonksiyonunun CPS dönüşümünü ele alalım. Doğrudan stil: fact 0 = 1; fact n = n * fact (n-1). CPS dönüşümü: factCPS 0 k = k 1; factCPS n k = factCPS (n-1) (\r → k (n * r)). CPS versiyonunda tüm çağrılar kuyruk çağrısı (tail call) haline gelir. Derleyici veya yorumlayıcı bu kuyruk çağrılarını yığıt (stack) büyütmeksizin, mevcut yığıt çerçevesini yeniden kullanarak gerçekleştirebilir. Continuation-passing style dönüşümünün matematiksel temeli denotasyonel anlambilimde yatar. Bir dilin CPS dönüşümü, orijinal programla aynı anlambilimi korurken kontrol akışını açık hale getirir. Bu dönüşümün önemli bir özelliği de derleyici ara temsil (intermediate representation) olarak kullanılmasıdır; GHC'nin STG makinesi ve MLTON gibi derleyiciler iç aşamalarında CPS ya da ona yakın temsiller kullanır. CPS dönüşümünün bir yan etkisi, fonksiyon çağrılarının sırasını açık hale getirmesidir. A Normalisation Form (ANF) bu fikri farklı bir biçimde uygular ve GHC gibi sistemlerde tercih edilen IR formatıdır. CPS ve ANF birbirine dönüştürülebilir; her ikisi de kontrol akışını explicit kılarak optimizasyonlara zemin hazırlar. Delimited continuation'larla ilişkili shift/reset operatörleri de CPS çerçevesinde formal olarak tanımlanır; bu bağlantı kontrol efektlerinin anlambilimsel temeli açısından kritik bir köprü işlevi görür.