Kompileret sprog
Programmer, der er kompileret til indfødt kode på kompileringstidspunktet, har tendens til at være hurtigere end programmer, der er oversat ved kørselstid, på grund af oversættelsesprocessens overhead. Nyere teknologier såsom just-in-time-kompilering og generelle forbedringer i oversættelsesprocessen er dog begyndt at mindske denne forskel. Blandede løsninger, der anvender bytecode, har en tendens til mellemliggende effektivitet.
Programmeringssprog på lavt niveau kompileres typisk, især når effektivitet er det vigtigste, snarere end understøttelse på tværs af platforme. For sådanne sprog er der flere en-til-en-korrespondancer mellem den programmerede kode og de hardwareoperationer, der udføres af maskinkode, hvilket gør det lettere for programmører at kontrollere brugen af centralprocessorenhed (CPU) og hukommelse i detaljer.
Med en vis indsats er det altid muligt at skrive kompilatorer, selv for traditionelt fortolkede sprog. F.eks. kan Common lisp kompileres til Java bytecode (som derefter fortolkes af Java virtual machine), C-kode (som derefter kompileres til native maskinkode) eller direkte til native kode. Programmeringssprog, der understøtter flere kompileringsmål, giver udviklerne mere kontrol over at vælge enten udførelseshastighed eller kompatibilitet på tværs af platforme.