Conceptos sobre Lenguajes de Programación

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Conceptos sobre Lenguajes de Programación por Mind Map: Conceptos sobre Lenguajes de Programación

1. Traslación de lenguajes de programación

1.1. Compilación

1.1.1. Tiene dos actividades

1.1.1.1. Descompone el programa.

1.1.1.2. Genera un programa objeto.

1.1.2. Traducción

1.1.2.1. Lenguaje fuente a lenguaje objeto

1.1.2.1.1. Tipos de traductores

1.2. Analizar el programa fuente

1.2.1. Serie no diferenciada de símbolos, compuesta de miles de caracteres.

1.3. Análisis léxico

1.3.1. Agrupar los caracteres en

1.3.1.1. Identificadadores

1.3.1.2. Delimitadores

1.3.1.3. Símbolos de operaciones

1.3.1.4. Palabras clave

1.3.1.5. Palabras pregonadas

1.3.1.6. Espacios en blanco

1.3.2. Las unidades resultantes se conoce como elementos léxicos.

1.3.3. Esta fase de traducción requiere mayor tiempo de traducción.

1.4. Análisis sintáctico

1.4.1. Se identifican estructuras grandes de programa como

1.4.1.1. Enunciados

1.4.1.2. Declaraciones

1.4.1.3. Expresiones

1.4.2. Usa y analiza expresiones léxicas de la anterior fase y las convierte en una unidad sintáctica.

1.4.2.1. A esta unidad la procesa un analizador semántico.

1.4.3. Analizador sintáctico se comunica con el semántico usando pila.

1.4.3.1. Analizar semántico coloca la unidad sintáctica en la pila.

1.4.3.2. Analizador semántico lo recupera y los procesa.

1.5. Análisis semántico

1.5.1. Es la fase medular.

1.5.2. Se procesa las estructuras sintácticas

1.5.3. Puente entre las partes de análisis y de síntesis de traducción.

1.5.4. Mantenimiento de las tablas de símbolos.

1.5.5. Analizadores semánticos

1.5.5.1. Realizan mantenimiento de las tablas de símbolos.

1.5.5.2. Detección de errores.

1.6. Tabla de símbolos

1.6.1. Guarda información de las diversas estructuras de datos.

1.7. Síntesis del programa objeto

1.7.1. Optimización y generación del programa generado.

1.7.1.1. Produce y representa la salido en algún código intermedio.

1.8. Generación de código

1.8.1. El lenguaje traducido se transforma en lenguaje ensamblador.

1.8.1.1. La salida puede ser

1.8.1.1.1. Directamente ejecutable

1.8.1.1.2. Puede haber pasos de traducción.

1.9. Programa objeto.

1.9.1. Vinculación y carga.

1.9.1.1. Los subprogramas se funden en el programa final.

2. Interpretación

2.1. Traducción de lenguaje de alto nivel a lenguaje máquina.

2.1.1. Compiladores

2.1.1.1. Traduce el lenguaje fuente a programa objeto (solo hace la traducción).

2.1.2. Intérpretes

2.1.2.1. Procesa los programas escritos en alto nivel.

2.1.2.2. No existe independencia entre la traducción y la ejecución

2.1.2.3. Traduce cada sentencia a código máquina y lo ejecuta.

2.2. Comparación entre intérpretes y compiladores

2.2.1. En los intérpretes, los errores son fáciles de detectar y corregir.

2.2.2. Los compiladores presentan la ventaja de velocidad de ejecución

2.2.3. Los compiladores ocupan menos memoria.

3. Ámbito

3.1. Visibilidad de la variable

3.1.1. Es visible en una sentencia cuando se puede referenciar en la misma.

3.1.2. Variable local

3.1.2.1. Se declara en un mismo bloque del programa

3.1.3. Variable no local

3.1.3.1. Es visible en dicho bloque pero no declaradas en él.

3.2. Ámbito estático

3.2.1. Ligadura de nombre a variables globales en tiempo de compilación.

3.2.1.1. Como determinar los atributos

3.2.1.1.1. Buscar la declaración local, sino

3.2.1.1.2. Buscar en el padre estático

3.2.1.1.3. Buscar donde se declara al padre.

3.2.1.1.4. O hasta que salga error de declaración.

3.2.2. Los padres estáticos de un subprograma hasta el programa principal se denominan antepasados estáticos.

3.2.3. Variables locales a esa sección de código

3.2.3.1. Se les denomina variables dinámicas de pila

3.2.3.1.1. Se asigna a comenzar la sección y se desasigna cuando sale de ella.

3.2.4. Evaluación

3.2.4.1. Método de acceso a variables no locales adecuado.

3.2.4.2. Acceso a demasiados datos.

3.2.4.3. Falta de flexibilidad provoca usar más variables globales.

3.3. Ámbito dinámico

3.3.1. Basado en la secuencia de llamadas a subprogramas y no en la relación sintáctica entre ellos.

3.3.1.1. Se determina en tiempo de ejecución.

3.3.1.1.1. Como determinar los atributos

3.3.2. Evaluación

3.3.2.1. Un subprograma que referencie una variable global puede relacionarse con una variable diferente cada que se ejecuta.

3.3.2.2. Programas difíciles de leer.

3.3.2.3. Ventaja: el subprograma hereda el contexto de sus llamadores.

3.4. Entorno de referencia

3.4.1. Lenguajes con ámbito estático

3.4.1.1. Está compuesto por variables declaradas en su ámbito local más todas las visibles de sus antepasados.

3.4.2. Lenguajes con ámbito dinámico

3.4.2.1. Está compuesto por las variables declaradas localmente más todas las variables visibles de subprogramas activos.