Tuesday, December 13, 2022

The Verse Programming Language

Simon Peyton Jones (via Ian Kettlewell, Hacker News, slides):

Since joining Epic Games in late 2021, I have been involved in the design and development of Verse, a new, declarative programming language that Epic plans to use as the language of the metaverse.

Verse is a functional logic language, with a bunch of innovative ideas. Like Haskell Verse is declarative (a variable in Verse stands for just one, immutable value), and higher order (lambdas are first class). But Verse goes well beyond Haskell, with existential variables, unification, expressions that yield multiple values, and more besides. In this talk I’ll give you a sense of what functional logic programming is about, what it looks like to program in Verse, and how we can give meaning to Verse programs using rewrite rules.

Simon Peyton Jones (PDF):

Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this paper we describe the Verse calculus, VC, a new core calculus for functional logical programming. Our main contribution is to equip VC with a small-step rewrite semantics, so that we can reason about a VC program in the same way as one does with lambda calculus; that is, by applying successive rewrites to it.

This unpublished draft describes our current thinking about Verse.

Dan Luu:

Interesting to compare [Sweeney (2005)] to [Jones et al. (2022)] to see how the thinking about Epic’s new language has evolved over almost two decades.

There’s obviously a lot of new stuff, but some of the core ideas from 2005 are still there, e.g., […] “Transactions are the only plausible solution to concurrent mutable state.”


At a meta level, it’s a bit surreal to see a game company fund a two decade research effort into a new language at a time when classic industrial research labs like IBM Research, MSR, Bell Labs, etc., have been severely defunded or shifted much of their focus to shorter-term projects or both.

Comments RSS · Twitter

Leave a Comment