They are both similar as they achieve similar purposes, but inherently different as to how they achieve that purpose. Compiled code takes programs (source) written in some kind of programming language, and then ultimately translates it into object code or machine language. Compiled code does the work much more efficiently, because it produces a complete machine language program, which can then be executed. The interpreter translates instructions one at a time, and then executes those instructions immediately. The compiler is itself a computer program written usually in some implementation language. From this answer.