Python is a very high-level programming language. I've been using it for very low-level programming. We'll meet an unusual computer.
We're all guilty of rolling our own implementation of existing code, but how far have you taken it? Ever reimplemented multiplication? Did you use CPU instructions that had _literally never been used before_?
The development of microprocessors like the Zilog Z80 and MOS 6502 in the 1970s eventually gave rise to the 8-bit home computers that many remember fondly. When Marcel van Kervinck and Walter Belgers designed the Gigatron, a quirky but surprisingly capable computer made from 74xx series logic ICs, they showed that a different course of history was possible - we could have had microcomputers without microprocessors, perhaps much earlier. They also created a world of unclimbed mountains: on the Gigatron you can be the first person to implement your favourite game or algorithm.
A few years ago I built a Gigatron, and I'm having great fun with it. I started off trying to implement a Forth interpreter, but while I've programmed for many years, I'd never written low-level code before. I really thought it would be easy! In this talk I'll show what I've achieved with the Gigatron, how working within the challenging architecture has broadened my perspective on programming, and how Python was at the heart of it all.
The talk will explore technical details, but won't require specialist knowledge. It's likely to touch on:
* Python as an assembly language
* Test Driven Development
* CFFI
* Hypothesis
* Data analysis with Matplotlib and other parts of the scientific stack.
* System Architecture
* Hard real-time programming
* Programming language implementation.