Writing an Interpreter in Object Pascal: Part 1: The Runtime System