Capitulo 2 (Conceptos de lenguajes de programación)

Definición de un lenguaje de programación

Get Started. It's Free
or sign up with your email address
Capitulo 2 (Conceptos de lenguajes de programación) by Mind Map: Capitulo 2 (Conceptos de lenguajes de programación)

1. Análisis Semántico

1.1. Fase medular de la traducción

1.2. Procesa estructuras sintacticas

1.3. Puente entre análisis y síntesis

1.4. Mantenimiento a tabla de símbolos

2. Análisis Sintáctico

2.1. Identifican las estructuras de un programa

2.1.1. Enunciados

2.1.2. Expresiones

2.2. Identifica serie de elementos léxicos

2.3. Alterna con el análisis semántico

2.4. Uso de pila para comunicarse

3. Análisis Léxico

3.1. Agrupar serie de caracteres

3.1.1. Identificadores

3.1.2. Delimitadores

3.1.3. Palabras clave

3.2. Identifica el tipo de elementos

3.3. Elaborar representación interna

4. Análisis del programa fuente

4.1. Se presenta una serie larga de símbolos

4.2. Construcción carácter por carácter

4.3. Análisis de la estructura del programa

5. Translación de lenguajes de programación

5.1. Traducción de un programa

5.2. De sintaxis a forma ejecutable

5.3. Esfuerzos importantes de traducción

5.4. Ejecución Eficiente

6. Compilación

6.1. Realiza dos pasos sobre el programa fuente

6.2. Descompone el programa

6.3. Genera programa objeto

6.4. Ensamblador

6.5. Compilador

6.6. Editor de vínculos

7. Ámbito de una variable de programa

7.1. Rango de sentencias

7.2. Visibilidad de la variable

8. Conceptos

8.1. Visible: Se puede referenciar en una sentencia

8.2. Reglas de ámbito

8.3. Variable Local

8.4. Variable no local

9. Ámbito estático

9.1. Ligadura de nombres a variables no locales

9.2. Ocurre en el tiempo de ejecucción

9.3. Introducido por ALGOL 60

9.4. Pueden anidarse los subprogramas(Excepción: Lenguaje C)

9.5. Antepasados estáticos: los padres estáticos en el programa

9.6. Declaración de variable oculta la declaración de otra variable (nombres iguales)

10. Ámbito dinámico

10.1. APL

10.2. SNOBOL4

10.3. Secuencia de llamadas a subprogramas

10.4. Determinación del ámbito en tiempo de ejecución

10.5. Comunicación unidades de programa

11. Entorno de referencia

11.1. Perteneciente a una sentencia

11.2. Colección de identificadores visibles

12. Lenguajes con ámbito estático

12.1. Compuesto por:

12.2. Variables declaradas en su ámbito local

12.3. Variables visibles de antepasados estáticos

13. Lenguajes con ámbito dinámico

13.1. Compuesto por:

13.2. Variables declaradas localmente

13.3. Variables visibles de subprogramas activos

14. Generación de código

14.1. Después de la optimización

14.2. Dar formato apropiado a la salida

14.3. Directamente ejecutable o

14.3.1. Pasos de traducciones adicionales

14.4. Transformar enunciados

15. Tabla de simbolos

15.1. Estructura de datos medular

15.2. Almacenan información

15.3. Entrada por cada identificador

15.4. Interacción con tipos de análisis

15.5. Detección de errores

16. Síntesis del programa objeto

16.1. Generación del código

16.2. Optimización del programa

16.2.1. Gracias a representación en código intermedio

16.3. Creacion código objeto de salida

17. Programa objeto

17.1. Esta la vinculación y carga

17.1.1. Segmentos de código traducido

17.2. Uso de tablas de cargador anexas

17.3. Programa ejecutable listo

18. Interpretación

18.1. Traducción a lenguaje maquina antes de la ejecución

19. Compiladores

19.1. Traduce programa fuente a programa objeto

19.2. Efectúa solo traducción

19.3. No ejecuta el programa

20. Interpretes

20.1. Procesa programas: lenguaje de alto nivel

20.2. Traduce a código maquina

20.3. Trabajo en modo convencional

20.4. Ejecución de cada instrucción antes de la siguiente

21. Comparación entre intérpretes y compiladores

21.1. Interpretes:

21.1.1. Análisis sintáctico: ingreso por teclado

21.1.2. Mensaje diagnostico de problemas

21.2. Compiladores:

21.2.1. Velocidad de ejecución

21.2.2. Ocupan menos memoria: Programas cortos

22. Determinación de atributos de una variable

22.1. Buscar declaración local

22.2. Buscar en su padre dinámico (si aun no se ha encontrado)

22.3. Buscar en su ancestro dinámico (si aun no se ha encontrado)

22.4. No se encontró, error en la ejecución