En , også kalt en , er en type kompilator som prosesserer kildekoden eller et abstrakt syntakstre til et program flere ganger. Dette står i motsetning til en en-pass kompilator, som traverserer programmet bare en gang. Hvert pass tar resultatet fra det forrige pass som input, og skaper en mellomkode. På denne måten forbedres koden pass for pass, inntil det siste pass produserer den endelige kode.