Compiler Weekly: Truth

This week I took yet another look at improving the parser logic that I have been using. In the past I tried to use parser-combinators to build up my parsers with the idea that they might be smaller, simpler or better. This time I decided to simply write the parser from scratch.

Read More...
Written 26/10/2021

Compiler Weekly: BrainF*** Interpreter

This week I set out to solve my parser woes from my last post. I worked really hard to build a library that would match my needs. In the end I came up with a project called pebble_parser. Its a similar parser combinator library to pom but with a better syntax and it works on iterators rather than arrays.

My project for this week was to build a BrainF**k compiler. Its a simple language with very little syntax. I figured it would be a great way to test out my parser without having too hard a project to complete.

Read More...
Written 17/10/2021

Compiler Weekly: Calculator REPL

For this post (and maybe the next few) I want to try something different. Im calling this series “compiler weekly” because I want to explore different parts of compilers in fast iterations.

My goal of this week was to figure out what tools to use when building compilers in rust. I needed a good lexer and parser. Ideally a set of libraries that are easy to use, expressive, extendable and with good error messages.

To test this I build a very simple calculator REPL. It takes math input like this: 5 + 5 / 10 and will print out the answer. It will not handle brackets, order of operations or any other intricacies of calculators. Those are problems for a later time.

Read More...
Written 13/10/2021

Open Question: How Can We Fix Files?

I was recently helping my mother share a file using Microsoft Sharepoint. The file was a zip archive containing a few word documents. We uploaded the file and sent a share link to the recipient. They clicked the link and was unable to use the files. It turned out that rather than downloading the file, the link opens an online file browser that navigates into the zip. This caused confusion because the the user did not understand that a online view of the files is not the same as having the files on your computer.

This is common in the world of online files. So I started to wonder: How can we build software that does not continuously confuse people?

Read More...
Written 05/08/2021

Minecraft Server Using Docker and Terraform

I started playing Minecraft back in 2009 just after the beta version was released. I have fond memories exploring the worlds and setting up home servers so that my brother and I could play together. Now its 2020 and we are in a global pandemic. Everyone is isolating and we have to deal with that. So my friends and I have started to play Minecraft again. I setup a simple server on Google Cloud Platform that only costs around a dollar a month for our usage. In this post I will go over the pieces that I used to build that server and how you can setup your own.

Read More...
Written 11/11/2020