What is the difference between an assembler and a compiler ?