CPS (style par passage de continuation)
Style de programmation où les fonctions ne « retournent » jamais : elles reçoivent une « continuation » (un callback qui dit « quoi faire ensuite ») et l'appellent avec le résultat.
Familier depuis les callbacks de Node : fs.readFile(path, (err, data) => ...) est du CPS. Représentation interne puissante dans les compilateurs (SML/NJ, MLton, Chez Scheme, GHC après la forme STG). Elle permet d'implémenter les exceptions, async/await, les générateurs, les coroutines et les continuations multi-coups (call/cc en Scheme). On écrit rarement du CPS à la main — c'est une couche intermédiaire de compilateur. La transformation CPS peut donner l'effet d'appels terminaux même dans les langages sans optimisation des appels terminaux.