Gecompileerde taal
Programma’s die tijdens de compileertijd zijn gecompileerd in native code, zijn meestal sneller dan programma’s die tijdens runtime zijn vertaald, vanwege de overhead van het vertaalproces. Nieuwere technologieën, zoals just-in-time compilatie, en algemene verbeteringen in het vertaalproces beginnen deze kloof echter te verkleinen. Gemengde oplossingen die bytecode gebruiken neigen naar intermediaire efficiëntie.
Low-level programmeertalen worden meestal gecompileerd, vooral wanneer efficiëntie de belangrijkste zorg is, eerder dan cross-platform ondersteuning. Voor dergelijke talen zijn er meer een-op-een overeenkomsten tussen de geprogrammeerde code en de hardwareoperaties die door machinecode worden uitgevoerd, waardoor het voor programmeurs gemakkelijker wordt om het gebruik van de centrale verwerkingseenheid (CPU) en het geheugen tot in het kleinste detail te regelen.
Met enige inspanning is het altijd mogelijk om compilers te schrijven, zelfs voor traditioneel geïnterpreteerde talen. Common lisp kan bijvoorbeeld worden gecompileerd naar Java bytecode (dan geïnterpreteerd door de Java virtual machine), C-code (dan gecompileerd naar native machinecode), of direct naar native code. Programmeertalen die meerdere compilatiedoelen ondersteunen, geven ontwikkelaars meer controle om te kiezen tussen uitvoeringssnelheid of cross-platform compatibiliteit.