Skip to main content


Showing posts from August, 2017

Book Review : How To Create Pragmatic, Lightweight Languages

At last, a guide that makes creating a language with its associated baggage of lexers, parsers and compilers, accessible to mere mortals, rather to a group of a few hardcore eclectics as it stood until now.

The first thing that catches the eye, is the subtitle:

The unix philosophy applied to language design, for GPLs and DSLs"
What is meant by "unix philosophy" ?. It's taking simple, high quality components and combining them together in smart ways to obtain a complex result; the exact approach the book adopts.
I'm getting ahead here, but a first sample of this philosophy becomes apparent at the beginnings of Chapter 5 where the Parser treats and calls the Lexer like  unix's pipes as in lexer|parser. Until the end of the book, this pipeline is going to become larger, like a chain, due to the amount of components that end up interacting together.

The book opens by putting things into perspective in Chapter 1: Motivation: why do you want to build lan…

Think Perl 6 mega book review

This title comes amid a shower of announcements of forthcoming Perl 6 books, therefore I initially thought  that so many releases at the same time could potentially disorient the aspiring reader. Fortunately it looks more like that each title addresses different kinds of audiences and at I Programmer we aims to find more about what's in it for each audience.
Think Perl 6 is targeting the uninitiated in programming in general, as such it goes over the pure basics and the raw elements that make up programming as a science.

That said, I don't have the answer as to why someone would be compelled to kick off his exploration of Computer Science with Perl 6 as his first language when there are so many, popular and well tried alternatives such as Python, JavaScript or Java. That person would be someone already versed in some computing, more like a teacher or mentor who finds the idea of tackling Perl 6 rather exciting, and rightly so, as 6 is a post-modern programming lan…