compiler computer program fasm freebasic halting problem linux machine code oberon programming language operating system personal computer programming language pypy s-expression self-interpreter source code theoretical computer science toolchain