Aplicabilidad de los Compiladores

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Aplicabilidad de los Compiladores por Mind Map: Aplicabilidad de los Compiladores

1. Define una abstracción de programación

1.1. El programador expresa un algoritmo usando lenguaje y el compilador debe traducir el programa en el lenguaje de destino.

2. Aplicaciones de las Técnologias de los compiladores

2.1. tienen usos importantes

2.2. El diseño del compilador impacta en las áreas computacionales

3. Implementación de lenguajes de programación de alto nivel

3.1. los programas de menor nivel son más difíciles de escribir

3.1.1. Menos Portables y propensos a errores y presentan dificultad para dar mantenimiento

4. Ejemplificación

4.1. lenguaje C se creo a mediados de los 70, Era necesario dejar que un programador controlara cuales variables del programa debían establecerse en los registros.

4.2. La palabra Clave registro es uno de los primeros ejemplos en la técnologia de compiladores.

4.3. Los programadores que utilizan un lenguaje de bajo nivel tienen mas control sobre un cálculo y pueden producir código más eficiente

5. Orientación a objetos

5.1. Se introdujo por primera vez en simula en 1967.

5.1.1. Se ha incorporado en lenguajes como Smalltalk, C++, C#, y Java

5.2. Ideas claves de la orientación a objetos son:

5.2.1. 1. Abstracción de datos

5.2.2. 2. Herencia de propiedades

5.3. Facilitan el mantenimiento de los programas y los hace más modulares.

5.4. Son diferentes de los programas escritos en otros lenguajes.

5.4.1. El lenguaje Java ofrece seguridad en los tipos, es decir un objeto no puede usarse como objeto de un tipo que no este relacionado.

6. Óptimizaciones para las arquitecturas de computadoras

6.1. Aprovechan dos técnicas básicas

6.1.1. 1. Paralelismo

6.1.1.1. Podemos encontrar niveles:

6.1.1.1.1. 1. Nivel de instrucción

6.1.1.1.2. 2. Nivel de procesador

6.1.1.2. Todos los microprocesadores modernos explotan el paralelismo

6.1.1.3. los programas son escritos como si todas las instrucciones se ejecutaran en secuencia

6.1.2. 2. Jerarquías de memorias

6.1.2.1. Consiste en varios niveles de almacenamiento con distintas velocidades y tamaños, donde el nivel más cercano al procesador es el más rápido.

6.1.2.2. Se encuentran en todas las máquinas

7. Diseño de nuevas arquitecturas de computadoras

7.1. en los primeros dias los compiladores se creaban después haber creado las máquinas.

7.2. El desarrollo de arquitecturas de computadoras modernas

7.2.1. los compiladores de desarrollan en la etapa de diseño de procesador

7.2.2. Utilizando código compilado

7.2.2.1. Ejecutado en simuladores para realizar evaluación en las características propuestas sobre la arquitectura.

8. RISC

8.1. Conocido como:

8.1.1. los compiladores influenciaron el diseño de la arquitectura

8.2. Destinados a facilitar la programación en ensamblador.

8.3. Estas arquitecturas se denominaron:

8.3.1. Computadora con conjunto complejo de instrucciones (CISC).

8.3.1.1. Incluyen modos de direccionamiento de memoria complejos para soportar los accesos a las estructuras de datos.

8.4. las optimizaciones de compiladores pueden reducir estas instrucciones a un pequeño número de operaciones simples.

8.4.1. Eliminando las redundancias presentes en las instrucciones complejas.

9. Herramientas de administración de memoria

9.1. Ayudan a identificar problemas en forma estática.

10. Arquitectura especializada

10.1. En las últimas tres décadas se han propuesto muchos conceptos sobre la arquitectura, entre los cuales se incluyen las máquinas de flujo de datos las máquinas VLIW

10.2. La tecnología de compiladores se necesita no sólo para dar soporte a la programación para esta s arquitecturas, sino también para evaluar los diseños arquitectónicos propuestos.

11. Traducciones de programas

11.1. una traducción de un lenguaje de alto nivel al nivel de máquina, la misma tecnología puede aplicarse para realizar traducciones entre distintos tipos de lenguajes como.

11.2. Tecnicas de traduccion de programas

11.2.1. Traducción Binaria

11.2.2. Síntesis de hardware

11.2.3. Interpretes de consultas de bases de datos

11.2.4. Simulación complilada

12. Herramientas de productividad de Software

12.1. los programas son los artefactos de ingeniería más complicados que se hayan producido.

12.2. comprobacion de tipos

12.2.1. puede influenciar el flujo de control d el código en cierto punto del programa, entonces hay una falla potencial en la seguridad.

12.3. comprobación de Limites

12.3.1. se programa en un lenguaje de bajo nivel que en uno de alto nivel.

13. Lenguajes de programacion

13.1. Un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar.

13.1.1. Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.

13.2. C , C++ , C#, o Java,php entre otros lenguajes mas

14. La distinción entre estático y dinamico

14.1. un lenguaje utiliza el alcance estático o alcance léxico si es posible determinar el alcance de una declaración con sólo ver el programa y en el dinámico permite ejecutar el programa,

14.2. Realizar una decisión a la hora de ejecutar el programa permitiendo al compilador decidir sobre una cuestión, utiliza una directiva estática.

15. Integrantes : 1-Diana Carolina Jimenez Gonzalez. 2-Dilcia Esmeralda Ramirez Lopez.