Un lenguaje compilado es un lenguaje de programación cuyas implementaciones son típicamente compiladores (traductores que generan código de máquina a partir del código fuente ) y no intérpretes (ejecutores paso a paso del código fuente , donde no tiene lugar una traducción previa al tiempo de ejecución).
El término es algo vago. En principio, cualquier lenguaje se puede implementar con un compilador o con un intérprete. [1] Una combinación de ambas soluciones también es común: un compilador puede traducir el código fuente a alguna forma intermedia (a menudo llamada código p o código byte ), que luego se pasa a un intérprete que lo ejecuta.
Ventajas y desventajas
Los programas compilados en código nativo en tiempo de compilación tienden a ser más rápidos que los traducidos en tiempo de ejecución debido a la sobrecarga del proceso de traducción. Sin embargo, las tecnologías más nuevas, como la compilación justo a tiempo y las mejoras generales en el proceso de traducción, están comenzando a reducir esta brecha. Las soluciones mixtas que utilizan bytecode tienden a una eficiencia intermedia.
Los lenguajes de programación de bajo nivel generalmente se compilan, especialmente cuando la eficiencia es la principal preocupación, en lugar del soporte multiplataforma . Para tales lenguajes, hay más correspondencias uno a uno entre el código programado y las operaciones de hardware realizadas por el código de máquina , lo que facilita a los programadores el control del uso de la unidad central de procesamiento (CPU) y la memoria con gran detalle.
Con algo de esfuerzo, siempre es posible escribir compiladores incluso para lenguajes interpretados tradicionalmente . Por ejemplo, Common lisp se puede compilar en código de bytes Java (luego interpretado por la máquina virtual Java ), código C (luego compilado en código de máquina nativo) o directamente en código nativo. Los lenguajes de programación que admiten múltiples objetivos de compilación brindan a los desarrolladores más control para elegir la velocidad de ejecución o la compatibilidad entre plataformas.
Idiomas
Algunos lenguajes que comúnmente se consideran compilados:
- Ada
- ALGOL
- BÁSICO
- PowerBasic
- Visual Basic (a código de bytes)
- PureBasic
- C
- C ++
- C # (a código de bytes)
- CLEO
- COBOL
- Cobra
- Cristal
- D
- CE
- Eiffel
- Erlang (a código de bytes)
- F # (a código de bytes)
- Factor (versiones posteriores)
- Adelante
- Fortran
- Ir
- Haskell
- Haxe (a código de bytes o C ++)
- Java (a código de bytes)
- JOVIAL
- Julia (a través de JIT )
- LabVIEW , G
- Ceceo
- Lisp común
- Lozano
- Mercurio
- ML
- ML estándar
- Alicia
- OCaml
- ML estándar
- Nim (a C, C ++ o Objective-C)
- Abierto-URQ
- Pascal
- Objeto Pascal
- Delphi
- Libre Pascal / Lázaro
- Modula-2
- Modula-3
- Oberon
- Objeto Pascal
- C objetivo
- PL / I
- Juego de rol
- Oxido
- Semilla7
- SPITBOL
- Rápido
- Vlang
- Visual Foxpro
- Prólogo visual
- W
- Zig
Herramientas
- ANTLR
- CodeWorker
- Lex
- Flexionar
- Bisonte GNU
- Yacc
Ver también
- Compilador
- Lista de lenguajes compilados
- Intérprete (informática)
- Lenguaje interpretado
Referencias
- ^ Ullah, Asmat. "Funciones y características de los lenguajes compilados" . www.sqa.org.uk .
- ^ Hickey, rico. "Clojure es un lenguaje compilado" , recuperado el 11 de septiembre de 2020.
enlaces externos
- Idiomas compilados en Curlie
.