Llenguatge de programació compilat
Tipus | Tipologia de lengatge de programacion (oc) ![]() ![]() |
---|---|
Característiques tècniques | |
Plataforma | C standard library i altres |
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ó).[1]
El terme és una mica vague. En principi, qualsevol llenguatge es pot implementar amb un compilador o amb un intèrpret.[2] 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.[3]
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.[4]
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[5]
- Scala
- Kotlin
- JOVIAL
- Julia (through JIT)
- LabVIEW, G
- Lisp
- Common Lisp
- Mercury
- ML
- Standard ML
- Alice
- OCaml
- Standard ML
- Nim (to C, C++, or Objective-C)
- Pascal
- Object Pascal
- Delphi
- Free Pascal / Lazarus
- Modula-2
- Modula-3
- Oberon
- Object Pascal
- 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.