Any piece of sotware that translates one source language into a target language, often performing transformations along the way. Usually in reference to software that translates high-level computer source code into machine-dependent object code.