ICFP 2024
Mon 2 - Sat 7 September 2024 Milan, Italy
Sat 7 Sep 2024 12:00 - 12:30 at Meeting 4 - Session 2

We present two novel implementations of the combinator calculus Nock, in Racket Scheme (Nocksche) and miniKanren (Nocko). “Nock” is the computational model underlying the Urbit project, intended to support practical systems programming in a functional language for the Urbit OS, network protocol, and native applications. The Nock specification was designed with the goals of simplicity and naturality vis-a-vis this use case. We compare the effects of implementing Nock in functional versus declarative style, demonstrate its universality by encoding the SKI calculus, present a quine in Nock, and discuss whether the Nock specification achieves its goals. In particular, because the Nock specification is given in a combination of natural language and pseudocode, we investigate what constraints the Nock spec places on compliant implementations. The translation of Nock-in-the-abstract to Nocksche and Nocko is used to illustrate potential ambiguities and implementation specific decisions that might lead to differences - potentially incompatibilities - across implementations. In the process, the suitability of Racket for concisely implementing combinator calculi is demonstrated.

Sat 7 Sep

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

11:00 - 12:30
Session 2Scheme at Meeting 4
11:00
30m
Talk
A Teaching Language for Specification
Scheme
Cameron Moy Northeastern University
11:30
30m
Talk
Beyond SICP - Design and Implementation of a Notional Machine for Scheme
Scheme
Kyriel Abad National University of Singapore, Martin Henz National University of Singapore
File Attached
12:00
30m
Talk
Nocksche and Nocko
Scheme