Edward Amsden


Making Nock Fly

May 6, 2024 12:00 PM

Nock is a combinator language designed to fully specify an operating system and applications on top of it. It also turns out to be an excellent language for a zkVM. The only problem is that its highly dynamic nature has made it difficult to execute performantly. A new static analysis which Edward calls "subject knowledge analysis" is being implemented in the Ares solid-state interpreter for Nock. This allows us to eliminate most indirect calls, while destination-driven code generation a la Chez scheme provides a means to registerize Nock programs. When combined with a refinement of the "Cheney on the MTA" stack allocation and copying scheme, this opens the door to standard compiler optimizations which are difficult to apply directly to Nock, and enables performant execution of Urbit and other programs implemented in Nock.

Starting from: $500

Unchain your mind at LambdaConf 2024

Buy tickets