Tweet Author’s note: I originally wrote this back in 2009, but never got around to publishing it. Gödel, Escher, Bach: an Eternal Golden Braid is Douglas Hofstadter’s tour de force of formal systems and the ‘strange loops’ that can arise within them. Such strange loops can, it is claimed, give meaning to symbols where none […]
A Python implementation of a Hindley-Milner type inferencing algorithm for a small functional language.
Tweet To compile the code comprising an OWL BASIC procedure, function or main program into CIL, we must linearise the Control Flow Graph (CFG) representing the program statements. The CFG undergoes many transformations during compilation, for example to eliminate unreachable code or convert GOSUB routines into named procedures. Generation of CIL using Reflection.Emit requires that […]
Tweet After a long haul, and diversions into other more important projects — including starting a family — OWL BASIC today produced its first executable. Its not much. In fact its hardly anything. Just 2048 bytes of Windows PE executable containing the global variable declarations from Acornsoft’s 1982 Sphinx Adventure. Each file of BASIC source […]
Tweet Earlier today I posted the second article in what is turning out to be a short series in the investigation into why the performance of IronPython is around 100× slower than CPython, when running the front-end of my OWL BASIC compiler. The most informative comment was from Curt Hagenlocher who works on IronPython in […]
IronPython 2.0 can be hundreds of times slower than CPython on some microbenchmarks. Jython 2.5 can scale better than CPython on those same benchmarks.