Hoewel de meeste gevorderde computergebruikers waarschijnlijk wel weten wat een compiler is, zal de precieze werking ervan bij velen onbekend zijn. Voor iedereen die de details nu toch graag eens wil weten, heeft Real World Technologies een uitgebreid artikel geschreven over de verschillende aspecten van het soort programma's dat code van een hoge programmeertaal kan omzetten in machinetaal. Overigens is deze definitie volgens het artikel te beperkt, en wordt onder een compiler alles verstaan dat strings in andere strings omzet. Besproken wordt echter voornamelijk de variant die in de eerste definitie vastgelegd werd, en sinds de jaren veertig bestaat:
When high level languages were first invented in the forties and fifties no compilers had been written. Early compilers were complex and took huge amounts of time and manpower to write. Since then work on methods and tools have made it possible for a single programmer to write quite an advanced compiler. One of the main lessons learnt is how to split a compiler into parts. At the highest level there are three parts: the front end that understands the syntax of the source language, the mid-end that performs high level optimizations and the back end that produces assembly language.