July 9th, 2024

Grokking the Sequent Calculus (Functional Pearl)

The paper introduces the lambda-mu-mu-calculus as a term assignment system for the sequent calculus, emphasizing its symmetry and suitability for compiler intermediate languages. It targets a broader audience and will be presented at ICFP '24.

Read original articleLink Icon
Grokking the Sequent Calculus (Functional Pearl)

The paper titled "Grokking the Sequent Calculus (Functional Pearl)" introduces the lambda-mu-mu-calculus as a term assignment system for the sequent calculus, providing a more symmetric alternative to natural deduction. The lambda-mu-mu-calculus is highlighted for its suitability as a foundation for compiler intermediate languages due to its representation of evaluation contexts. The paper aims to make the lambda-mu-mu-calculus accessible to a broader audience beyond type theorists and logicians, targeting compiler hackers and programming-language enthusiasts. It presents an introduction by developing a compiler from a surface language to the lambda-mu-mu-calculus as a compiler intermediate language. The work is positioned as a contribution to bridging the gap between experts in the sequent calculus and a wider community interested in its applications. The paper has been accepted for presentation at ICFP '24 and is categorized under Programming Languages (cs.PL) on arXiv.

Related

Flambda2 Ep. 2: Loopifying Tail-Recursive Functions

Flambda2 Ep. 2: Loopifying Tail-Recursive Functions

Flambda2's Episode 2 explores Loopify, an optimization algorithm for tail-recursive functions in OCaml. It transforms recursion into loops, enhancing memory efficiency without compromising functional programming principles.

Why are module implementation and signatures separated in OCaml? (2018)

Why are module implementation and signatures separated in OCaml? (2018)

Separation of module implementation and signatures in OCaml enables scalable builds, creation of cmi files, and streamlined interface modifications. Emphasizing abstraction and implementation separation enhances modular programming and system reasoning.

Deriving Dependently-Typed OOP from First Principles

Deriving Dependently-Typed OOP from First Principles

The paper delves into the expression problem in programming, comparing extensibility in functional and object-oriented paradigms. It introduces dependently-typed object-oriented programming, emphasizing duality and showcasing transformations. Additional appendices are included for OOPSLA 2024.

A reckless introduction to Hindley-Milner type inference (2019)

A reckless introduction to Hindley-Milner type inference (2019)

Hindley-Milner type inference balances expressiveness and legibility in programming languages like Elm and Haskell. It enhances correctness by enforcing strict type checking, limiting coding practices for improved type safety.

Denotational Semantics and a Fast Interpreter for jq (2023)

Denotational Semantics and a Fast Interpreter for jq (2023)

The paper introduces denotational semantics for the jq programming language, addressing the lack of a formal specification. A new interpreter, jaq, outperforms jq on benchmarks, submitted to OOPSLA 2023.

Link Icon 1 comments
By @082349872349872 - 3 months
compare Filinski, Declarative Continuations and Categorical Duality (1989)