Llenguatge de programació compilat

Llenguatge de programació compilat

TipusTipologia de lengatge de programacion (oc) Tradueix Modifica el valor a Wikidata
Característiques tècniques
PlataformaC 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

*Ada
  • 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
  • Nim (to C, C++, or Objective-C)
  • Pascal
    • Object Pascal
    • Modula-2
    • Modula-3
    • Oberon
  • Objective-C
  • PL/I
  • RPG
  • Rust
  • Seed7
  • SPITBOL
  • Swift
  • Vala
  • Visual Foxpro
  • Visual Prolog
  • Zig

Referències

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