-
Recent Posts
Recent Comments
sanjoyd on Faking Dependent Types in… drocta on Faking Dependent Types in… Matt on Faking Dependent Types in… Francis Kim on Faking Dependent Types in… Anurag Bishnoi on On why religion is a double… Archives
Categories
Meta
Author Archives: sanjoyd
Color Schemes
I wrote a new minimalist color scheme (for emacs) today. If you’re into that sort of thing, the code is on github, and down below is a screenshot.
A JIT Compiler for Brainf*ck
I recently read this article by Josh Haberman where he demonstrates a JIT for the Brainf*ck language (henceforth referred to as BF). However it wasn’t very different from a regular AOT compiler — the entire BF script is read in … Continue reading
Lambda Calculus for the Imperative Programmer I
This post is first in a series of articles on lambda calculus. You can see the whole series by looking up the tag lcip. The Untyped Lambda Calculus At the very core, the untyped lambda calculus (referred to as λ … Continue reading
Lock-free programming, first steps: mostly lock-free fixed-size vector
I recently got interested in lock-free programming techniques, and began playing with the idea of a lock-free, fixed size vector. While the final result isn’t completely lock-free, it is an optimization over a naively locked version. The following is a … Continue reading
Peeking inside LuaJIT
LuaJIT is a high-performance virtual machine for Lua. I’ve recently started playing with it and this blog post talks about what I’ve discovered so far. LuaJIT is a tracing JIT as opposed to a method JIT — it works not … Continue reading
Classical Axioms in Coq
For the past few days I’ve been working through an amazing text, Software Foundations, which aims to develop “basic concepts of functional programming, logic, operational semantics, lambda-calculus, and static type systems, using the Coq proof assistant”. This post is an … Continue reading
Posted in Computers
Tagged agda, cic, classical logic, coq, haskell, logic, theorem proving
Leave a comment
Typechecking TAL0 in Agda.
This post is an annotated solution to problem 4.2.11 in the book Advanced Topics in Types and Programming Languages from the chapter Typed Assembly Language by Gerg Morrisett. Introducing TAL0 I’ll do my best to give an informal introduction to … Continue reading
Posted in Computers
Tagged agda, function programming, haskell, static analysis, TAL, typed assembly, types
Leave a comment
Initial Algebras: Part II
In the last post we looked at functor algebras and properties of morphisms (arrows) between them. In this post we’ll explore initial functor algebras (or initial F-Algebras). The Cliffhanger The last episode ended with a question on whether it is … Continue reading
Posted in Computers
Tagged category theory, computer science, haskell, math, Programming
Leave a comment
Initial Algebras: Part I
Meta-post This post is light on math and uses Haskell to express formalisms. If you’re clear on what a Functor is, you’re good to go. Functors and Algebras There is this regular old functor, with the type constructor Func. We’ve … Continue reading
Posted in Computers
Tagged arrows, category theory, functional programming, functors, haskell, initial algebra
6 Comments
Logic Puzzles in Agda
This post assumes basic knowledge of Agda. A few days ago, Paul Snively published a post which set me thinking on how Agda (which is the closest thing to Coq I have some knowledge of) fares in similar scenarios. Pretty … Continue reading