In this post, I discuss Chapel's runtime types as a limited alternative to dependent types.| danilafe.com
In the previous post, we put together a number of powerful pieces of machinery to construct a sign analysis. However, we still haven’t verified that this analysis produces correct results.| Posts on Daniel's Blog
In the previous post, I showed that the Control Flow graphs we built of our programs match how they are really executed.| Posts on Daniel's Blog
In the previous two posts, I covered two ways of looking at programs in my little toy language: In part 5, I covered the formal semantics of the programming language.| Posts on Daniel's Blog
In the previous section, I’ve given a formal definition of the programming language that I’ve been trying to analyze. This formal definition serves as the “ground truth” for how our little imperative programs are executed; however, program analyses (especially in practice) seldom take the formal semantics as input.| Posts on Daniel's Blog
In the previous several posts, I’ve formalized the notion of lattices, which are an essential ingredient to formalizing the analyses in Anders Møller’s lecture notes.| Posts on Daniel's Blog
In the preivous post we looked at lattices of finite height, which are a crucial ingredient to our static analyses. In this post, I will describe the specific algorithm that makes use of these lattices; this algorithm will be at the core of this series.| Posts on Daniel's Blog
In this post, I describe the class of finite-height lattices, and prove that lattices we've alread seen are in that class| danilafe.com
In this post, I describe how lattices can be combined to create other, more complex lattices| danilafe.com
In this post, I introduce an algebraic structure called a lattice, which underpins certain program analyses| danilafe.com
In this post, I give a top-level overview of my work on formally verified static analyses| danilafe.com
In this post, I talk about pleasant but seemingly minor features in personal sites| danilafe.com
Table of Contents| danilafe.com
In this post, I talk about a trick I developed to simplify certain Agda proofs.| danilafe.com
In this post, I show off Bergamot, a tiny logic programming language and an idea for teaching inference rules.| danilafe.com
In this post, I talk about my favorite C/C++ pattern involving macros.| danilafe.com
In this post, I talk about a pattern I've observed in the Agda standard library.| danilafe.com
Table of Contents| danilafe.com
I’ve recently taken the time to redesign my website from scratch, on both the back-end and the front-end! On the back-end, this means the addition of tags, which allow me to categorize the not-so-plentiful content on the site. On the front-end, this means a new design written completely from scratch. This new front-end also allows me to render mathematics:| danilafe.com
In this post, I apply Alloy to a piece of code in the Chapel compiler to find a bug.| danilafe.com
Table of Contents| danilafe.com
In this article, we explore the patterns created by remainders from division.| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
In this article, we use Coq to write down machine-checked semantics for the untyped concatenative calculus.| danilafe.com
Table of Contents| danilafe.com
This will be an uncharacteristically short post. Recently,| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
In this post, we clean up our compiler.| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
In this post, we extend our language with let/in expressions and lambda functions.| danilafe.com
Table of Contents| danilafe.com
In this post, we enable our compiler to understand polymorphic data types.| danilafe.com
In this post, we extend our compiler's typechecking algorithm to implement the Hindley-Milner type system, allowing for polymorphic functions.| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates.| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
In this post, we enable our compiler to convert G-machine instructions to LLVM IR, which finally allows us to generate working executables.| danilafe.com
Table of Contents| danilafe.com
In this post, we allow our compiler to throw away invalid programs, detected using a monomorphic typechecking algorithm.| danilafe.com
In this post, we take a little break from pushing our compiler forward to make some improvements to the code we've written so far.| danilafe.com
In this post, we define the rules for a G-machine, the abstract machine that we will target with our compiler.| danilafe.com
In this post, we enable our compiler to convert programs written in our functional language to G-machine instructions.| danilafe.com
In this post, we implement the supporting code that will be shared between all executables our compiler will create.| danilafe.com
A long time ago, I decided to try out Jekyll for my website. However, it all felt too| danilafe.com
In this first post of a larger series, we embark on a journey of developing a compiler for a lazily evaluated functional language.| danilafe.com
In this post, we tackle the first component of our compiler: tokenizing.| danilafe.com
In this post, we combine our compiler's tokenizer with a parser, allowing us to extract structure from input source code.| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com
Table of Contents| danilafe.com