stringtranslate.com

Traductor (informática)

Un traductor o procesador de lenguaje de programación es un programa de computadora que convierte las instrucciones de programación escritas en una forma conveniente para los humanos en códigos de lenguaje de máquina que las computadoras entienden y procesan. Es un término genérico que puede referirse a un compilador , ensamblador o intérprete (cualquier cosa que convierta código de un lenguaje informático a otro). [1] [2] Estos incluyen traducciones entre lenguajes informáticos de alto nivel y legibles por humanos, como C++ y Java , lenguajes de nivel intermedio como el código de bytes de Java , lenguajes de bajo nivel como el lenguaje ensamblador y el código de máquina , y entre lenguajes similares. niveles de lenguaje en diferentes plataformas informáticas , así como de cualquiera de éstas a cualquiera de estas. [1] El software y el hardware representan diferentes niveles de abstracción en informática. El software suele escribirse en lenguajes de programación de alto nivel, que son más fáciles de entender y manipular para los humanos, mientras que las implementaciones de hardware implican descripciones de bajo nivel de componentes físicos y sus interconexiones. La informática traductora facilita la conversión entre estos niveles de abstracción. [3] En general, la informática de traducción desempeña un papel crucial a la hora de cerrar la brecha entre las implementaciones de software y hardware, permitiendo a los desarrolladores aprovechar las fortalezas de cada plataforma y optimizar el rendimiento, la eficiencia energética y otras métricas de acuerdo con los requisitos específicos de la aplicación. [4]

Procesadores de lenguajes de programación

El proceso de desarrollo de software es notablemente diferente según el tipo de traductor utilizado por el desarrollador; esto, por supuesto, difiere de un traductor a otro. Las etapas del proceso de desarrollo en las que influye un traductor incluyen la etapa de programación inicial, la etapa de depuración y, más notablemente, el proceso de ejecución. Los factores que se ven afectados durante estas etapas incluyen el rendimiento del código, la velocidad de retroalimentación para el proceso de depuración, las características del lenguaje y la independencia de la plataforma. Algunos de los procesadores de lenguajes de programación más notables utilizados para traducir código son los compiladores , intérpretes y ensambladores . [5]

Compiladores

El software compilador interactúa con el código fuente convirtiéndolo generalmente de un lenguaje de programación de nivel superior en código objeto que luego puede ser ejecutado por la Unidad Central de Procesamiento (CPU) de la computadora. [6] El código objeto creado por el compilador consiste en código legible por máquina que la computadora puede procesar. Esta etapa del proceso informático se conoce como compilación. La utilización de un compilador conduce a la separación en el proceso de traducción y ejecución. Después de la compilación, el nuevo código objeto se guarda por separado del código fuente, lo que hace que el código fuente ya no sea necesario para el proceso de ejecución. Con los programas compiladores, el proceso de traducción se produce una sola vez, lo que da como resultado un código eficiente que se puede ejecutar rápidamente tantas veces como desee. [6]

Existen claros beneficios al traducir código de alto nivel con un compilador. [7]

Existen claras desventajas al traducir código de alto nivel con un compilador. [7]

Esta imagen representa el proceso de traducción a través de un compilador.

Algunos lenguajes de programación notables que utilizan compiladores incluyen: [8]

Intérpretes

Los programas de interpretación funcionan interpretando código de alto nivel en código utilizable por máquina mientras ejecutan simultáneamente las instrucciones línea por línea. A diferencia de los compiladores, los intérpretes no necesitan compilar el código antes de ejecutar las instrucciones. El proceso de traducción y ejecución se realiza simultáneamente y se interrumpe en caso de error en el programa. El uso de un intérprete permite a los desarrolladores probar y modificar código en tiempo real. Facilita el proceso de depuración y ayuda a crear un código más eficiente. Dado que el proceso de traducción y ejecución se realiza simultáneamente, el tiempo de ejecución de los programas de interpretación es sustancial. [5]

Existen claros beneficios al traducir código de alto nivel con un intérprete.

Existen claras desventajas al traducir código de alto nivel con un intérprete. [7]

Algunos lenguajes de programación notables que utilizan intérpretes incluyen: [5]

ensambladores

Un programa ensamblador funciona convirtiendo código ensamblador de bajo nivel en un código de máquina convencional que es legible por la CPU. El propósito del lenguaje ensamblador, al igual que otros lenguajes de codificación, es hacer que el proceso de programación sea más fácil de usar que la programación en lenguaje de máquina. Los lenguajes ensambladores utilizan dispositivos mnemotécnicos y direcciones simbólicas para diferenciar entre códigos de operación, operandos y direcciones de memoria específicas. Muchos de estos componentes no son fácilmente legibles por los humanos y, por lo tanto, los mnemotécnicos, los símbolos y las etiquetas hacen que el código sea descifrable. El ensamblador funciona procesando el código línea por línea y luego pasa a la siguiente instrucción. Para eliminar los problemas que ocurren debido a las ubicaciones de direccionamiento, el proceso de traducción conocido como ensamblaje generalmente se realiza en un proceso de dos pasos. La primera pasada del ensamblaje se realiza para identificar direcciones binarias que corresponden a los nombres simbólicos. Esto es esencial para guiar el paso dos, que es la traducción línea por línea al lenguaje de máquina. [9]

Los ensambladores comúnmente utilizados incluyen:

Ver también

Referencias

  1. ^ ab Thornton, Scott (17 de febrero de 2017). "¿Qué son compiladores, traductores, intérpretes y ensambladores?". Consejos para el microcontrolador . Archivado desde el original el 19 de julio de 2019 . Consultado el 2 de febrero de 2020 .
  2. ^ "Traductores y utilidades para el desarrollo de programas". Manual de software (PDF) . Corporación Intel . 1984 [1983]. pag. 3-1. 230786-001. Archivado (PDF) desde el original el 29 de enero de 2020 . Consultado el 29 de enero de 2020 .
  3. ^ Beaulieu, Adrien (2022). "A15. Tecnologías front-end y back-end: la importancia del dominio de múltiples lenguajes de programación".
  4. ^ Pagadala, Santosh Kumar (2004). "Implementación portátil de un entorno de diseño asistido por computadora para estructuras compuestas".
  5. ^ abcd "Procesadores de lenguaje: ensamblador, compilador e intérprete". Geeks para Geeks . 2018-08-09 . Consultado el 15 de marzo de 2024 .
  6. ^ ab "CSE 5317/4305: Diseño y Construcción de Compiladores". lambda.uta.edu . Consultado el 15 de marzo de 2024 .
  7. ^ abcde "Tipos de traductores". Ada Ciencias de la Computación . 2024-03-15 . Consultado el 15 de marzo de 2024 .
  8. ^ "Lenguajes compilados versus lenguajes interpretados". www.ibm.com . Consultado el 15 de marzo de 2024 .
  9. ^ ab Patt, Yale; Patel, Sanjay (15 de agosto de 2019). Introducción a los sistemas informáticos: de bits y puertas a C/C++ y más allá (3ª ed.). Nueva York, Nueva York: McGraw-Hill. págs. 231-243. ISBN 978-1260150537.
  10. ^ abcd Stokoe, William (6 de mayo de 2024). "estructura de la lengua de signos". Revista Anual de Antropología . 9 : 365–390. doi : 10.1146/annurev.an.09.100180.002053 . Consultado el 15 de marzo de 2024 .

Otras lecturas