-- Cade Brown's personal blog

Home | About | Contact | Archive

Recent Posts

Kata (#4) - First Compiler (Code Generation with LLVM)

Since we have operators, function calls, and the basics being parsed, we can start actually generating code from the resulting AST. We’ll be implementing it seperately than the parser.

Posted 2020-11-08

Matrix Multiplication (#1) - Blocked Algorithms

Block matrices are often used in linear algebra to simply formulae or to efficiently break a problem down into components (like, for example, recursive subdivision in FFTs). In this post, we implement blocked (sometimes called tiled) matrix multiplication, which will

Posted 2020-10-26

Matrix Multiplication (#0) - Introduction

This is the first post covering matrix multiplication, and how to implement it.

Posted 2020-10-25

Kata (#3) - First Compiler (Parsing Expressions)

We finally start parsing the cool stuff: operators, precedence, function calls, etc. We’re sticking with expressions at this point (not adding things like if), but we’ll get to those soon.

Posted 2020-10-23

Kata (#2) - First Compiler (ASTs)

Using our tokenizer/lexer created in the last post for Kata, we are now going to transform the token stream into an Abstract Syntax Tree, via a recursive descent parser.

Posted 2020-10-21

Kata (#1) - First Compiler (Tokenizing)

In this part, we begin implementing the actual parts of the compiler. This will begin with Tokenizing (AKA lexical analysis), which breaks source up into discrete ‘words’ (or tokens).

Posted 2020-10-20

Kata (#0) - Setup

Let’s learn how to implement a system programming language. This series will cover the design (including documentation, standardization, etc.), as well as the practical implementation. The first part will just be defining some terms and getting a project set up. We’ll be using the C++ programming language and the LLVM library to implement our compiler.

Posted 2020-10-19

Implementing {Zeta, Gamma} Functions From Scratch

In developing my language, kscript, I wanted to have the Riemann Zeta Function and Gamma Function available as part of the standard library. So, I implemented it! We program a code generator in Python, which generates C code, which can then be used in another project with no dependencies.

Posted 2020-08-05

Why Schools Should Use Free Software

Schools should use free software because it enables further education, and critical thinking. This article is about the pros and cons of free software, such as GNU/Linux, and how this software should be used or at least supported in education. I go to the L&N STEM Academy, but not previously noted is the fact that we are a “1 to 1” technology school. What this means is that each student has a laptop. More s...

Posted 2016-12-26
— 1 of 1 —

Cade Brown's personal blog, licensed under CC-BY 4.0.