The Functional Machine Calculus (FMC), recently introduced by the authors, is a generalization of the lambda-calculus which may faithfully encode the effects of higher-order mutable store, I/O and probabilistic/non-deterministic input. Significantly, it remains confluent and can be simply typed in the presence of these effects. In this paper, we explore the denotational semantics of the FMC. We have three main contributions: first, we argue that its syntax -- in which both effects and lambda-calculus are realised using the same syntactic constructs -- is semantically natural, corresponding closely to the structure of a Scott-style domain theoretic semantics. Second, we show that simple types confer strong normalization by extending Gandy's proof for the lambda-calculus, including a small simplification of the technique. Finally, we show that the typed FMC (without considering the specifics of encoded effects), modulo an appropriate equational theory, is a complete language for Cartesian closed categories.
翻译:作者最近推出的功能机器计算法(FMC)是羊羔计算法(FMC)的概括,它可以忠实地将高阶变异存储器、I/O和概率/非确定性输入的效果编码成册。重要的是,它仍然是混杂的,在有这些影响的情况下可以简单地打字。在本文中,我们探讨了FMC的分泌语义。我们有三个主要贡献:首先,我们争辩说,它的语法 -- -- 其效应和羊羔计算法都使用相同的合成构思来实现 -- -- 具有词性自然性质,与Scott式域域论结构密切对应。第二,我们表明简单类型通过扩大甘迪对羊驼计算学的证明,包括小的简化,使这种结构非常正常化。最后,我们证明FMC(不考虑编码效应的具体特性)是一种适当的方程式理论,是Carterian封闭类的完整语言。