About:

A web log. Mostly about computer science-y stuff.

Website:

Specializations:

Incoming Links:

Subscribe to RSS:
The text discusses the problems with getting a language parsed in LR(1) or LR(k) and how an old way to solve those problems is with a more powerful algorithm that can parse any context-free grammar. It introduces the concept of Ge...
The post discusses the optimisation of LR automata and how to apply the optimisations from previous posts on the automaton itself. It includes diagrams and explanations of the process, as well as the benefits and downsides of each...
The text discusses the optimization of recursive ascent parsing, focusing on the ideas from two 1990 papers. It explores the example grammar and the described optimizations, and the performance win on the test input. The author al...
The post discusses the optimization of recursive ascent parsing, exploring techniques for making the recursive ascent parser smaller and faster. It introduces the example grammar and the parse table representation of the DFA. The ...

0Switching to Zola

2024-06-08

The author has switched from Jekyll to Zola for generating the blog, and made some changes to the blog format and design. They are currently working on contributing their changes back to Zola and have made some adjustments to the ...
The text is about LR parsing and recursive ascent, which is part 2 of old-school linear time parsing algorithms. It explains LR parsing, its parse tables, and recursive ascent. It also discusses the expressive power and relation t...
The text discusses LL parsing and recursive descent in the context of automata. It explains the concept of push-down automata, context-free grammars, derivations, parse trees, ambiguity, and limitations of LL grammars. It also pro...
The post is about an interpreter for Stratego Core in Rust, named strs, and a tool for Copy Propagation on CTree files. It explains the process of copy propagation and abstract interpretation, and the optimisations in the interpre...
The text is about learning Rust through a project. It discusses the COBS algorithm and its implementation in Rust. The author encourages readers to find a project to learn Rust. The post includes prose descriptions, Rust implement...
The text is about the author's experience in writing a Stratego interpreter in Rust. The author discusses the process of building the interpreter, the quirky semantics of Stratego, and the challenges faced in optimizing the interp...
The author published their first crate to crates.io, called aterm, which is a library that implements the Annotated Term format. The Annotated Term format originates from the Centre for Mathematics and Computer Science (CWI) in Am...
The post discusses the idea of using physical quantity as the type instead of a specific unit of measure in programming languages. It explains two ways to implement this, normalisation and late conversion, and the downsides of eac...

0New domain name

2017-02-11

The author has purchased a new domain name and moved the weblog to a new URL. They have ensured that the old URLs will still work, but new content may not be available there. The hosting is currently on GitHub Pages, but may chang...
The post is about implementing finite automata for real and useful things. It discusses infinite sets, NFA-ε, and the transitive reachability closures over cyclic graphs. The author also talks about the epsilon closure and the imp...
The post is about implementing finite automata in Rust. It is part of a series on Automata and focuses on the implementation of automata for real and useful things. The post discusses the non-deterministic finite automata, NFA exe...
The author has ported the tool cargo-benchcmp from Python to Rust and added some functionality. They are teaching themselves Rust by writing in it and have contributed to the open source tool. They have been working on coloured ou...

0Pretty Terminal

2016-07-23

The post is about the author's new terminal setup, which includes a good terminal emulator, color scheme, shell, theme, and font. The author provides instructions for setting up the terminal on Mac, Linux, and Windows.

0Pushy Automata

2016-05-15

The post is about automata, context-free languages, and pushdown automata. It explains the difference between deterministic and non-deterministic finite automata, and how to extend automata with a stack. It also discusses the tran...

0Finite Automata

2016-04-10

The text discusses the similarities between Turing machines and regular expressions, both of which are based on finite state machines. It explains deterministic finite automaton (DFA) and non-deterministic finite automaton (NFA), ...
The author announces that they will be writing posts about theoretical computer science topics, starting with finite automata, regular languages, and context-free languages. They plan to eventually cover parsers and parsing algori...