The Morgan And Grand Intermediate Language Compiler (MAGIC) is a new compiler library for Clojure, written in Clojure and targeting the Microsoft Common Language Runtime. By representing its target bytecode as persistent data, MAGIC enables the rapid, REPL-driven workflow that Clojure programmers have come to value. The goal is, to borrow from Kovas Boguta, to make compiler programming feel like "normal" programming. This flexibility is invaluable to the Arcadia project, which integrates Clojure into the Unity3D game engine, and must contend with high performance pressure as well as bytecode restrictions on consoles and mobile devices.
The talk will cover the differences between the CLR and the JVM as they relate to Clojure, the semantics of CLR bytecode, MAGIC's approach to bytecode generation and optimization, and next steps. Live coding will be used when possible.
Ramsey Nasser is a computer scientist, game designer, and educator based in Brooklyn. He researches programming languages by building tools to make computation more expressive and implementing projects that question the basic assumptions we make about code itself. His games playfully push people out of their comfort zones, and are often built using experimental tools of his design. Ramsey is a former Eyebeam fellow and a professor at schools around New York. When he is not reasoning about abstract unintuitive machines, he goes on long motorcycle trips.