Diferencia Entre Fase Y Paso En El Compilador

Diferencia Entre Fase Y Paso En El Compilador
Diferencia Entre Fase Y Paso En El Compilador

Vídeo: Diferencia Entre Fase Y Paso En El Compilador

Vídeo: Diferencia Entre Fase Y Paso En El Compilador
Vídeo: COMPILADORES DEIFINICION Y FASES 2024, Noviembre
Anonim

Fase vs paso en el compilador

En general, el compilador es un programa informático que lee un programa escrito en un idioma, que se denomina idioma de origen, y lo traduce a otro idioma, que se denomina idioma de destino. Tradicionalmente, el lenguaje de origen era un lenguaje de alto nivel como C ++ y el lenguaje de destino era un lenguaje de bajo nivel como el lenguaje ensamblador. Entonces, en general, los compiladores pueden verse como traductores que traducen de un idioma a otro. Pass y Phase son dos términos que se utilizan a menudo con los compiladores. El número de pasadas de un compilador es el número de veces que pasa sobre la fuente (o alguna forma de representación de la misma). Un compilador se divide en partes para facilitar la construcción. Phase se utiliza a menudo para llamar a una parte independiente de un compilador.

¿Qué es un pase en un compilador?

Una forma estándar de clasificar los compiladores es por el número de "pasadas". Por lo general, la compilación es un proceso relativamente intensivo en recursos e inicialmente las computadoras no tenían suficiente memoria para contener un programa que hiciera el trabajo completo. Debido a esta limitación de los recursos de hardware en las primeras computadoras, los compiladores se dividieron en subprogramas más pequeños que hicieron su trabajo parcial al revisar el código fuente (hicieron un "pase" sobre la fuente o alguna otra forma) y realizaron análisis, transformaciones y tareas de traducción por separado. Entonces, dependiendo de esta clasificación, los compiladores se identifican como compiladores de una o varias pasadas.

Como sugiere el nombre, los compiladores de una sola pasada compilan en una sola pasada. Es más fácil escribir un compilador de una pasada y también funcionan más rápido que los compiladores de varias pasadas. Por lo tanto, incluso en el momento en que tenía limitaciones de recursos, los lenguajes se diseñaron para que pudieran compilarse en una sola pasada (por ejemplo, Pascal). Por otro lado, un compilador de múltiples pasadas típico se compone de varias etapas principales. La primera etapa es el escáner (también conocido como analizador léxico). Scanner lee el programa y lo convierte en una cadena de tokens. La segunda etapa es el analizador. Convierte la cadena de tokens en un árbol de análisis (o un árbol de sintaxis abstracta), que captura la estructura sintáctica del programa. La siguiente etapa es la que interpreta la semántica de la estructura sintáctica. Las etapas de optimización de código y la etapa final de generación de código siguen a esto.

¿Qué es una fase en un compilador?

El término fase surge a menudo cuando se habla de construcción de compiladores. Inicialmente, los compiladores eran todas las piezas simples de software monolítico escrito por una persona para la compilación de un lenguaje simple. Pero cuando el código fuente del idioma que se va a traducir se vuelve complejo y extenso, el compilador se divide en varias fases (relativamente independientes). La ventaja de tener diferentes fases es que el desarrollo del compilador se puede distribuir entre un equipo de desarrolladores. Además, mejora la modularidad y la reutilización al permitir que las fases sean reemplazadas por otras mejoradas o fases adicionales (como optimizaciones adicionales) que se agregan al compilador. El proceso de dividir la compilación en fases fue introducido por el PQCC (Production Quality Compiler-Compiler Project) de la Carnegie Melon University. Introdujeron los términos front end, middle end y back end. La mayoría de los compiladores tienen al menos dos fases. Pero generalmente, el back-end y el front-end encapsulan estas fases.

¿Cuál es la diferencia entre Phase y Pass en el compilador?

Phase y Pass son dos términos usados en el área de compiladores. Un pase es una sola vez que el compilador pasa (pasa por) el código fuente o alguna otra representación del mismo. Por lo general, la mayoría de los compiladores tienen al menos dos fases llamadas front end y back end, mientras que pueden ser de una sola pasada o de varias pasadas. Phase se utiliza para clasificar los compiladores según la construcción, mientras que pass se utiliza para clasificar los compiladores según su funcionamiento.

Recomendado: