CS Cabal

Toronto-based reading group that meets weekly to read computer science books and papers.

Currently reading: The Little Typer

GuildMeetup listings

Mastodon Social Hub

Mailing list Communication nexus

Code of Conduct Must read

A Gentle Meta

July 12, 2015

By Scott

Double recap!! This week we covered Taha’s excellent tutorial, A gentle introduction to Multi stage programming (MSP) with MetaOCaml. We chose this one because it had Gentle in the title, and I think it succeeded in that respect, also in a weird convergence of Toronto developer communities, Julie Hache gave a nice intro on Wednesday to zero-overhead metaprogramming at Papers We love (Meetup Link ).

Two weeks ago we were discussing Wadler and Blott’s 1988 paper, How to make ad-hoc polymorphism less ad-hoc, and enjoyed several fruitful divergences including monoids and the representation of numbers. Not going to get into detail, but basically as far as floating point numbers go I think we can all agree if they float on water, then we need to burn them.

Next week we will delve deeper into MetaOCaml with Taha’s gentle introduction part deux, where we will use MSP to develop “Aloe”, possibly the world’s only interpreter named after a soothing medicinal herb and perhaps useful after some self-inflicted second degree floating point burns.

We had a more hands on discussion this week as we spent some time together playing the MetaOCaml interpreter Pete had running. Examining the expansions of the examples in the paper was quite interesting and Leo’s test of accepting data from stdin was also revealing. Discussion touched on a variety of topics, including meta programming in the Lisp AST and how many levels of meta is desirable, can you be too meta? We weren’t sure, but there are other goals to shoot for in this respect, Meta-Analysis.

Looking forward to spending some more time with this next week, until then, Scott