# Llenguatge de programació compilat

Un llenguatge compilat és un llenguatge de programació les implementacions del qual solen ser compiladors (traductors que generen codi màquina a partir del codi font) i no intèrprets (executors pas a pas del codi font, on no es produeix cap traducció prèvia a l'execució).
El terme és una mica vague. En principi, qualsevol llenguatge es pot implementar amb un compilador o amb un intèrpret. També és habitual una combinació d'ambdues solucions: un compilador pot traduir el codi font a alguna forma intermèdia (sovint anomenada p-code o bytecode), que després es passa a un intèrpret que l'executa.

## Avantatges i inconvenients

Els programes compilats en codi natiu en temps de compilació solen ser més ràpids que els traduïts en temps d'execució a causa de la sobrecàrrega del procés de traducció. Tanmateix, les noves tecnologies, com ara la compilació just-in-time, i les millores generals en el procés de traducció, estan començant a reduir aquesta bretxa. Les solucions mixtes que utilitzen bytecode tendeixen a una eficiència intermèdia.
Els llenguatges de programació de baix nivell s'acostumen a compilar, especialment quan la principal preocupació és l'eficiència, en lloc del suport multiplataforma. Per a aquests llenguatges, hi ha més correspondències un a un entre el codi programat i les operacions de maquinari realitzades pel codi màquina, cosa que facilita als programadors controlar l'ús de la unitat central de processament (CPU) i la memòria amb detall.
Amb cert esforç, sempre és possible escriure compiladors fins i tot per a llenguatges interpretats tradicionalment. Per exemple, Common Lisp es pot compilar al codi de bytes de Java (després interpretat per la màquina virtual Java), codi C (després compilat al codi de màquina natiu) o directament al codi natiu. Els llenguatges de programació que admeten múltiples objectius de compilació ofereixen als desenvolupadors més control per triar la velocitat d'execució o la compatibilitat o l'ús entre plataformes.

## Exemple de llenguatges compilats

* ALGOL
** ALGOL 60
** ALGOL 68
** SMALL
* BASIC
** PowerBasic
** Visual Basic (to bytecode)
** PureBasic
* C
* C++
* C# (to bytecode)
* Carbon (programming language)
* CLEO
* COBOL
* Cobra
* Crystal
* D
* eC
* Eiffel
** Sather
** Ubercode
* Erlang (to bytecode)
* F# (to bytecode)
* Factor (later versions)
* Forth
* Fortran
* Go
* Haskell
* Haxe (to bytecode or C++)
* Java (to bytecode)
** Clojure
** Scala
** Kotlin
* JOVIAL
* Julia (through JIT)
* LabVIEW, G
* Lisp
** Common Lisp
* Mercury
* ML
** Standard ML
*** Alice
** OCaml
* Nim (to C, C++, or Objective-C)
* Pascal
** Object Pascal
*** Delphi
*** Free Pascal / Lazarus
** Modula-2
** Modula-3
** Oberon
* Objective-C
* PL/I
* RPG
* Rust
* Seed7
* SPITBOL
* Swift
* Vala
* Visual Foxpro
* Visual Prolog
* Zig

## Referències

* ↑ «Interpreted vs Compiled Programming Languages: What's the Difference?» (en anglès), 10-01-2020. [Consulta: 17 desembre 2023].
* ↑ Ullah, Asmat. «Features and Characteristics of Compiled Languages» (en anglès). www.sqa.org.uk.
* ↑ «Difference between Compiled and Interpreted Language» (en anglès americà), 26-03-2020. [Consulta: 17 desembre 2023].
* ↑ «Compiled vs interpreted language: Basics for beginning devs» (en anglès). [Consulta: 17 desembre 2023].
* ↑ Hickey, Rich. "Clojure is a compiled language", Retrieved on 11 September 2020.