Traslación de Lenguajes de Programación

Get Started. It's Free
or sign up with your email address
Traslación de Lenguajes de Programación by Mind Map: Traslación de Lenguajes de Programación

1. Análisis léxico

1.1. La fase fundamental es agrupar la serie de caracteres en sus constituyentes elementales. (Elementos léxicos)

1.1.1. El analizador léxico debe identificar y marcar cada tipo de elemento léxico.

1.1.1.1. El modelo que se usa para proyectar analizadores léxicos es el autóma de estados finitos.

1.1.1.1.1. Esta fase de la traducción es las más demorada, analiza el programa fuente carácter por carácter.

2. Analisis Sintáctico

2.1. En esta fase se identifican las estructuras de programa que forman una unidad sintáctica: subprograma o declaración.

2.1.1. Entonces se llama a un analizador semántico para que procese esta unidad.

2.1.1.1. El analizador sintáctico y semántico se comunican mediante una pila.

3. Análisis semántico

3.1. Es talvez la fase medular de la traducción.

3.1.1. Se procesan las unidades sintácticas, donde empieza a tomar forma el código objeto ejecutable.

3.1.1.1. Es por tanto el puente entre el análisis y la síntesis de la traducción.

3.1.1.1.1. Es comun que la salida de esta etapa sea una forma interna del programa ejecutable final.

4. Síntesis del programa objeto

4.1. Implica generación de código a partir de las salidas del analizador semántico.

4.1.1. Antes de la generación de código se optimizan las salidas del analizador semántico.

5. Programa objeto

5.1. Etapa final, los fragmentos de codigo se funden en el programa final.

5.1.1. El resultado es el programa ejecutable final.

6. Compilación

6.1. Los traductores se agrupan según el número de pasos que realizan sobre el programa fuente.

6.1.1. El compilador estándar tiene dos pasos: la obtención de la información y la generación de un programa objeto.

6.1.1.1. Hay varios tipos de traductores:

6.1.1.1.1. Ensamblador: su lenguaje objeto es una variedad del lenguaje maquina pero su lenguaje fuente constituye una representación simbólica del código de maquina.

6.1.1.1.2. Compilador, cuyo lenguaje fuente es de alto nivel y su lenguaje objeto se aproxima al lenguaje de máquina.

6.1.1.1.3. Cargador o editor de vínculos, cuyo lenguaje objeto es un codigo de maquina y su lenguaje fuente es casi idéntico.

6.1.1.1.4. Preprocesador o un macroprocesador, cuyo lenguaje fuente es la forma ampliada de un lenguaje de alto nivel y su lenguaje objeto es su forma estándar.

7. Análisis del programa fuente

7.1. El programa fuente se presenta como una serie de simbolos compuesta por miles de carácteres.

7.2. Durante la traducción se contruye carácter por carácter, un análisis de la estructura del programa.

8. Tabla de símbolos

8.1. El analizador semántico se divide en otros analizadores que interactúan entre sí a través de la información de la tabla central de símbolos.

8.1.1. Las funciones exactas de los analizadores semánticos varían segun el lenguaje y la organizacion logica del traductor.

8.1.1.1. Algunas de las funciones mas comunes serian:

8.1.1.1.1. Mantenimiento de tablas de símbolos

8.1.1.1.2. Detección de errores

9. Generación de código

9.1. Se transforma los enunciados en lenguaje ensamblador o código de máquina.

9.1.1. El código de salida puede ser ejecutable o tener otros pasos por seguir.

10. Interpretación

10.1. Cualquier lenguaje de alto nivel debe traducirse a lenguaje maquina.

10.1.1. Para esto se usan softwares llamados compiladores e interpretes. (Traductores)

10.1.1.1. Compiladores

10.1.1.1.1. Traduce el programa fuente a programa objeto. No ejecuta el programa

10.1.1.2. Intérpretes

10.1.1.2.1. Traduce cada instrucción a código maquina y la ejecuta inmediatamente.

10.1.1.3. Comparación entre interpretes y compiladores:

10.1.1.3.1. La ventaja de los interpretes reside en que el análisis sintáctico se puede ir realizando cuando se interpreta.