Low-level programming: what it is all about