Style over substance

Concatenative languages

[Pestov2010] Factor: A dynamic stack-based programming language

[Mihelic2021] A denotational semantics of a concatenative/compositional programming language

[Kleffner2017] A foundation for typed concatenative languages

[Diggins2008a] Simple type inference for higher-order stack-oriented languages

[Diggins2008b] Typing functional stack-based languages

Linear continuations



“Linear Continuation-Passing”

J Berdine, P O'Hearn, U Reddy, et al. “Linear Continuation-Passing.” Higher-Order and Symbolic Computation 15, 181–208 (2002).

Abstract: Continuations can be used to explain a wide variety of control behaviours, including calling/returning (procedures), raising/handling (exceptions), labelled jumping (goto statements), process switching (coroutines), and backtracking. However, continuations are often manipulated in a highly stylised way, and we show that all of these, bar backtracking, in fact use their continuations linearly; this is formalised by taking a target language for cps transforms that has both intuitionistic and linear function types.

“Linear Continuation-Passing” [remarkable]

“Linear Continuation-Passing” [original]

“Linear Continuation-Passing” [DOI]