home

Hi great to meet you, I'm William Sørensen! I am a computer scientist specializing in programming language theory, compilers and systems programming. I intend to start a blog where I write tools and posts about my course!

As a bit of background, I stem from Harstad, a beautiful city of the north. I later moved to Cambridge for uni where I still reside.

In my freetime I enjoy long distance biking, rowing, and playing the timps (though not as often as I'd like to).

I am trying to write a silly little blog. To begin I explore the great lengths I have to go to for animation on the web!

Canvas commons for web animation

Making procedural canvas a tool for websites.
Over the years I have worked on a few different projects. Most of these are just silly proof of concepts, but some of them also larger, more developed projects.
An infinite sequence

Fast and easy-to-use coinductive datatypes for Lean4

Coinductive datatypes are structures I have taken a great deal of interest in in the past years. I wrote my dissertation on how to make them performant, and I had an internship under Alex Keizer working on them!
A graph of function calls to check the termination of

Termination checking

During first year of Cambridge, I became quite interested in termination checking of ML like programs. I then implemented a super simple term checker in OCaml.
A turbofish ::<> with a parse tree in it

Type driven parsing

A quick project done before uni was a LL(k) parser implemented as Rust generics.
Source code for this site on Github