Catamorph your DSL: C++ Port

In the previous posts, we went over the process of building a DSL for arithmetic operations and we introduced the concept of Catamorphism as a way to decouple the traversal of the AST from the operations we want to perform on it. We saw how it could help us compose operations before traversing the AST... Continue Reading →

Catamorph your DSL: Clojure

In the previous three posts, we went over the process of building a DSL for arithmetic operations and we introduced the concept of Catamorphism as a way to decouple the traversal of the AST of our DSL from he operations we want to perform on it. We saw how it could help us compose operations... Continue Reading →

Catamorph your DSL: Trade-offs

This post is a third of the series of post dedicated to notion of Catamorphisms and its application to build Domain Specific Languages (DSLs). Our first post introduced an Arithmetic DSL that allowed to build expression composed of operations like addition and multiplication integer constants and integers variables. We built several interpreters on top of... Continue Reading →

Catamorph your DSL: Deep dive

This post is a second of the series of post dedicated to notion of Catamorphisms and its application to build Domain Specific Languages (DSLs). Our last post introduced an Arithmetic DSL that allowed to build expression composed of operations like addition and multiplication integer constants and integers variables. On top of this DSL, we built... Continue Reading →

Catamorph your DSL: Introduction

I recently had the pleasure to go to a Haskell workshop on Domain Specific Languages (DSL). The goal was to teach us the basics on how to build a DSL. The workshop covered a lot of ground, too much to cover here. I will instead focus on one specific notion that this workshop made me... Continue Reading →

Beautiful Code: Control.Foldl

The last three posts were about providing useful higher order functions that go hand in hand with C++ STL algorithms and ranges. In particular, we were interested in combining several functions together to create concise and efficient traversals. While documenting on the subject, I went looking at other example in other languages. And I encountered... Continue Reading →

Create a website or blog at WordPress.com

Up ↑

%d bloggers like this: