In computation an interpreter executes some form of programming language, specification or rule set directly without first compiling it into machine code or byte-code. Interpreters offer rapid cycles of responsive development, but are usually less efficient to run.