Capitulo 2 (Conceptos de lenguajes de programación)
by CRISTIAN ANDRES ANDRADE GUALLPA
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