A Medieval DSL? Parsing Heraldic Blazons with Python!

PyCon, May 2019

This talk will be delivered at the upcoming PyCon. I've already given it to the SF Python meetup, but I don't have a video yet.

This is a clever way I have to talk about medieval history at a software conference.


Medieval European Nobility was obsessed with Lineage. They created a Heraldic System to track families, which assigned each family a unique Coat of Arms.

Any painting of the Coat of Arms was not the official version. The official version was a "Blazon" - a precise, terse description in heraldic language. This heraldic language reads like English, Latin, French, and XML had a baby. It's a fully recursive language with a formal grammar, variable assignment, positional arguments, and also, Lions, Bears, and Pythons.

Here's an example: Sable, on a fesse or three lions gules

In this talk, we look at parsing this Medieval Domain Specific Language with Python. Along the way, we'll learn a little history, and the tools for parsing and writing your own DSL.

PyCon Talk Listing