An assembler is a utility program that translates low-level assembly language code into machine code that the computer's CPU can directly execute. Interpreters translate high-level code line by line, while compilers translate high-level code all at once.