Fase vs pase en el compilador
En general, el compilador es un programa de computadora que lee un programa escrito en un idioma, que se llama el lenguaje fuente, y lo traduce en otro idioma, que se llama idioma de destino. Tradicionalmente, el lenguaje fuente era un lenguaje de alto nivel, como C ++ y el lenguaje de destino, era un lenguaje de bajo nivel como el lenguaje de ensamblaje. Entonces, en general, los compiladores pueden verse como traductores que se traducen de un idioma a otro. Pase y fase son dos términos a menudo utilizados con compiladores. El número de pases de un compilador es el número de veces que pasa por encima de la fuente (o alguna forma de representación). Un compilador se divide en piezas para la comodidad de la construcción. La fase a menudo se usa para llamar a una parte independiente de un compilador.
¿Qué es un pase en un compilador??
Una forma estándar de clasificar a los compiladores es por el número de "pases". Por lo general, la compilación es un proceso intensivo relativamente de recursos e inicialmente las computadoras no tenían suficiente memoria para contener un programa de este tipo que hiciera el trabajo completo. Debido a esta limitación de los recursos de hardware en las primeras computadoras, los compiladores se desglosaron en subgramas más pequeños que hicieron su trabajo parcial al repasar el código fuente (realizado un "aprobación" 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 están identificando como compiladores de un paso o múltiples de paso.
Como su nombre indica, los compiladores de un paso se compilan en un solo pase. Es más fácil escribir un compilador de un paso y también funcionan más rápido que los compiladores de múltiples pasos. Por lo tanto, incluso en el momento en que tenía limitaciones de recursos, los idiomas fueron diseñados para que pudieran ser compilados en un paso de un solo paso (e.gramo. Pascal). Por otro lado, un compilador típico de múltiples paso está compuesto por varias etapas principales. La primera etapa es el escáner (también conocido como el 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 optimizaciones de código y la etapa final de generación de códigos siguen esto.
¿Qué es una fase en un compilador??
El término fase a menudo aparece cuando habla sobre la construcción del compilador. Inicialmente, los compiladores eran todas las piezas simples de software monolítico simple escrito por una persona para la compilación de un lenguaje simple. Pero cuando el código fuente del idioma a traducir se vuelve complejo y grande, el compilador se descompuso en múltiples 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 o fases adicionales (como optimizaciones adicionales) que se agregarán al compilador. El proceso de dividir la compilación a las fases fue introducido por el PQCC (Proyecto de compilador de calidad de producción de producción) en la Universidad Carnegie Melon. Introdujeron los términos frontales, extremo medio y back -end. La mayoría de los compiladores tienen al menos dos fases. Pero, por lo general, el extremo trasero y la parte delantera encapsulan estas fases.
¿Cuál es la diferencia entre fase y pase en el compilador??
Fase y pase son dos términos utilizados en el área de los compiladores. Un pase es una sola vez que el compilador pasa (pasa) el código de fuentes o alguna otra representación de la misma. Por lo general, la mayoría de los compiladores tienen al menos dos fases llamadas frontal y back-end, mientras que podrían ser de un paso o múltiples pasos. La fase se usa para clasificar a los compiladores de acuerdo con la construcción, mientras que el pase se usa para clasificar a los compiladores de acuerdo con cómo operan.