Kompilierte Sprache
Programme, die zur Kompilierzeit in muttersprachlichen Code kompiliert werden, sind in der Regel schneller als solche, die zur Laufzeit übersetzt werden, da der Übersetzungsprozess einen Mehraufwand darstellt. Neuere Technologien wie die Just-in-Time-Kompilierung und allgemeine Verbesserungen im Übersetzungsprozess beginnen jedoch, diese Lücke zu schließen. Gemischte Lösungen, die Bytecode verwenden, tendieren zu einer mittleren Effizienz.
Programmiersprachen mit niedrigem Niveau werden in der Regel kompiliert, insbesondere wenn Effizienz das Hauptanliegen ist und nicht plattformübergreifende Unterstützung. Für solche Sprachen gibt es mehr Eins-zu-Eins-Entsprechungen zwischen dem programmierten Code und den Hardware-Operationen, die vom Maschinencode ausgeführt werden, was es dem Programmierer erleichtert, die Nutzung der Zentraleinheit (CPU) und des Speichers bis ins kleinste Detail zu steuern.
Mit etwas Aufwand ist es immer möglich, Compiler zu schreiben, selbst für traditionell interpretierte Sprachen. Zum Beispiel kann Common Lisp zu Java-Bytecode (der dann von der virtuellen Java-Maschine interpretiert wird), C-Code (der dann zu nativem Maschinencode kompiliert wird) oder direkt zu nativem Code kompiliert werden. Programmiersprachen, die mehrere Kompilierungsziele unterstützen, geben Entwicklern mehr Kontrolle, um entweder die Ausführungsgeschwindigkeit oder die plattformübergreifende Kompatibilität zu wählen.