¿Cuál es la diferencia entre un pase único y un compilador de múltiples pasos?

los diferencia principal Entre un solo paso y compilador multipass es que un compilador de una sola pasada es un compilador que pasa el código fuente a través de cada unidad de compilación solo una vez, mientras que un compilador de múltiples pasos separa la compilación en varias pasadas, donde cada pasada continuará con el resultado de la pasada anterior..

Un programa de computadora es un conjunto de instrucciones para que la computadora realice una determinada tarea. Normalmente, los programadores escriben programas utilizando lenguajes de programación de alto nivel. Sin embargo, la computadora no entiende estas instrucciones. Por lo tanto, es necesario convertir el código fuente en un código de máquina comprensible para la máquina. Un compilador es un software que convierte el código fuente en código de máquina, y el compilador de una sola pasada y de múltiples pasos son dos tipos de compiladores.

Áreas clave cubiertas

1. ¿Qué es un compilador de un solo pase?
     - Definición, Funcionalidad
2. ¿Qué es un compilador multipass?
     - Definición, Funcionalidad
3. ¿Cuál es la diferencia entre un pase único y un compilador de múltiples pasos?
     - Comparación de diferencias clave

Términos clave

Compilador de un solo paso, compilador multipas

¿Qué es un compilador de un solo pase?

Hay una serie de etapas en el proceso de compilación. Un compilador de una sola pasada hace una sola pasada a través del texto fuente, analizando, analizando y generando código solo una vez. En otras palabras, permite que el código fuente pase a través de cada unidad de compilación solo una vez. Inmediatamente traduce cada sección de código en su código de máquina final.. 

Figura 1: Compilador

Las etapas principales del compilador de una sola pasada son el análisis léxico, el análisis sintáctico y el generador de código. Primero, el análisis léxico escanea el código fuente y lo divide en tokens. Cada lenguaje de programación tiene una gramática. Representa la sintaxis y las declaraciones legales del lenguaje. Luego, el análisis sintáctico determina las construcciones del lenguaje descritas por la gramática. Finalmente, el generador de código genera el código objetivo. En general, el compilador de una sola pasada no optimiza el código. Además, no hay generación de código intermedio..  

Que es Multipass Compiler

Un compilador de varios pasos hace que el código fuente pase por el análisis, análisis, generación, etc. varias veces mientras se genera un código intermedio después de cada etapa. Convierte el programa en una o más representaciones intermedias en pasos entre el código fuente y el código de la máquina. Reprime toda la unidad de compilación en cada paso secuencial..

Cada pasada toma el resultado de la pasada anterior como entrada y crea una salida intermedia. Asimismo, en cada paso, el código mejora hasta que el paso final genera el código final. Un compilador de varios pasos realiza tareas adicionales como la generación de código intermedio, la optimización de código dependiente de la máquina y la optimización de código independiente de la máquina.

Figura 2: Compilador Multipass

Hay múltiples ventajas a los compiladores de múltiples pasos. Son máquinas independientes e incluyen una estructura modular. La generación de código se desacopla de los otros pasos de la compilación. Por lo tanto, los pases se pueden reutilizar para diferentes máquinas o hardware. Además, representa lenguajes más complejos y expresivos..

Diferencia entre un solo pase y compilador multipass

Definición

Un compilador de una sola pasada es un tipo de compilador que pasa a través de las partes de cada unidad de compilación solo una vez, traduciendo inmediatamente cada sección de código en su código final de máquina. Un compilador multipases es un tipo de compilador que procesa el código fuente o el árbol de sintaxis abstracta de un programa varias veces. Por lo tanto, estas definiciones explican la principal diferencia entre compilador de paso único y multipaso..

Velocidad

La velocidad es una diferencia importante entre el compilador de una sola pasada y el multipass. Un compilador de varios pasos es más lento que el compilador de un solo paso porque cada paso lee y escribe un archivo intermedio.

Sinónimos

Un compilador de una sola pasada también se llama compilador estrecho, mientras que un compilador de múltiples pasos se llama compilador ancho.

Alcance

Además, un compilador de una sola pasada tiene un alcance limitado, mientras que un compilador de múltiples pasos tiene un alcance mayor.

Optimización de código

Otra diferencia entre el compilador de un solo paso y multipases es que no hay optimización de código en el compilador de un solo paso, a diferencia del compilador de múltiples pasos, que tiene optimización de código.

Codigos intermedios

Los códigos intermedios también marcan la diferencia entre un compilador de un solo paso y varios pasos. No hay generación de código intermedio en compiladores de paso único. Sin embargo, hay una generación de código intermedio en compiladores de múltiples pasos..

Tiempo de compilación

Además, un compilador de una sola pasada requiere un tiempo mínimo para compilar en comparación con un compilador de varias etapas.

Consumo de memoria

Además, el consumo de memoria en un compilador multipases es mayor que el de un compilador de una sola pasada. Por lo tanto, esta es otra diferencia entre compilador de un solo paso y multipass.

Lenguajes de programación

Los lenguajes de programación como Pascal pueden implementarse usando un compilador de un solo paso, mientras que los lenguajes de programación como Java pueden implementarse usando un compilador multipases. Por lo tanto, esta es otra diferencia entre el compilador de una sola pasada y el multipass..

Conclusión

Compilador de una sola pasada y multipases son dos tipos de compiladores. La diferencia entre un compilador de un solo paso y varios pasos es que un compilador de un solo paso es un compilador que pasa el código fuente a través de cada unidad de compilación solo una vez, mientras que un compilador de varios pasos separa la compilación en varios pasos, donde cada paso continuará con el resultado del pase anterior..

Referencia:

1. "compilador 1 y 2". Scribd, Scribd, disponible aquí.
2. "Compilador de una sola pasada". Wikipedia, Wikimedia Foundation, 23 de marzo de 2018, disponible aquí.
3. “Compilador de pases múltiples”. Wikipedia, Wikimedia Foundation, 8 de febrero de 2018, disponible aquí.

Imagen de cortesía:

1. "Compilador" Por I, Surachit (CC BY-SA 3.0) a través de Commons Wikimedia
2. "Compilador de varios pases" Por Kenstruys - Trabajo propio (dominio público) a través de Commons Wikimedia