The main difference between compiler interpreter and assembler is that compiler converts the whole high level language program to machine language at a time while interpreter converts high level language program to machine language line by line and assembler converts assembly language program to machine language.