Hi! π I am Alwin,
Welcome to my GitHub page! This is a place where I have collected some of my work and some research projects.
I often try to develop theory and application simultaneously.
A selection of projects, listed below.
I am working on a number of projects around the specification of URLs. This works aims to resolve the differences between the WHATWG standard and the IETF specifications. It adds support for relative URLs in a way that agrees with the WHATWG standard.
- URL Specification β An URL specification that generalises the WHATWG standard.
- URLReference β An URL class that adds support for relative URLs.
- spec-url β A low level, core library that implements the URL specification above.
- reurl β An alternative URL library with immutable URL objects.
I am working on some projects around the HTML language as well. The end goal is to create an accurate and concise characterisation of the HTML5 language as parsed, together with an implementation!
- html-parser β An ongoing effort to define an ever simpler and more concise HTML parsing algorithm that agrees with the HTML5 standard.
- html-lexer β An html lexer that produces annotated chunks of raw input.
- tiny-html-lexer β A minute html tokeniser based on the previous, but using regular expressions.
- Domex β Domex (short for DOM expressions) is an algebraic language for specifying web user interfaces. Domex works by pattern-matching on input (model or viewmodel) data, and allows for recursive patterns. One way to think of it is as "recursive format strings" that produce HTML.
- Regex β A regular expression compiler that computes deterministic state machines (DFAs) by implementing (and slightly extending) the theory of derivatives of regular expressions.
- Ess β Ess is a research type-language for describing properties of sem-structured data (such as JSON) and a theorem prover for that language.
I wrote my Master's Thesis about the generalisation of Universal Algebra and Universal Coalgebra at the Institute for Logic, Language and Computation in Amsterdam; I've separated out the introductory notes on Category Theory and patched up some typos as well.
Some fun projects.
- Haikon-js β A parser for HVIF vector icon files, in JS (and Zig).
- XoDB β Some support for the reMarkable tablet database and βnotebooks in JS.
- immutable-aatree β A persistent ordered dictionary datastructure.
- tiny-css-parser β A CSS parser with a small code-base.
- tm-plist β A parser for the ASCII property list file format (as used by TextMate).