Historia de los compiladores--Fortran pascal c

10
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR Carlos Yépez Escuela de Ingeniería en Sistemas COMPILADORES DE: Fortran H, Pascal, y C

Transcript of Historia de los compiladores--Fortran pascal c

Page 1: Historia de los compiladores--Fortran pascal c

PONTIFICIA UNIVERSIDAD CATÓLICA DEL

ECUADOR

Carlos Yépez

Escuela de Ingeniería en Sistemas

COMPILADORES DE:

Fortran H, Pascal, y C

Page 2: Historia de los compiladores--Fortran pascal c

FORTRAN H

¿Qué es FORTRAN?

• Es un lenguaje de programación de alto nivel de propósito general, procedimental e imperativo, que está especialmente adaptado al cálculo numérico y a la computación científica.

Cara

cte

rística

s

• El lenguaje fue diseñado teniendo en cuenta que los programas serían escritos en tarjetas perforadas de 80 columnas. Así por ejemplo, las líneas debían ser numeradas y la única alteración posible en el orden de ejecución era producida con la instrucción goto. Estas características han evolucionado de versión en versión. Las actuales contienen subprogramas, recursión y una variada gama de estructuras de control.

Page 3: Historia de los compiladores--Fortran pascal c

COMPILADORES PARA FORTRAN H

Código Fuente

Análisis Léxico

• Incluido manejo de COMMON y EQUIVALENCE

Pares Operador - Operando

Análisis Sintáctico

•Flujo de datos, asignación de direcciones a nombres

Cuádruplos con

asignaciones de registros

Genera Código

Código máquina

relocalizable

CARACTERÍSTICAS

Permite al usuario no elegir optimización, optimización de registros o completa.

Escrito por Lowry y Medlock (1969).

Se realizan cuatro pasadas:

Las dos primeras realizan el a.léxico y a. Sintáctico produciendo cuádruplos.

La siguiente optimiza el código y registros.

La última genera código objeto a partir de cuádruplos y asignaciones a registros.

ORGANIZACIÓN DEL COMPILADOR

Page 4: Historia de los compiladores--Fortran pascal c

ESTRUCTURA DE LOS COMPILADORES H

• Devuelve: Los pares operador - operando son un token operando junto con el token no operando precedente.

• Utiliza precedencia de operadores para las expresiones.

• Optimizaciones simples, sustituir multiplicaciones por dos por desplazamientos.

EN EL LÉXICO

• Eliminación de subexpresiones comunes.

• Traslado de código.

• Propagación de copias.

• Eliminación de variables de inducción.

EN LA OPTIMIZACIÓN

Page 5: Historia de los compiladores--Fortran pascal c

PASCAL

• Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.

Cara

cte

rísticas

• Una diferencia importante es que en Pascal, el tipo de una variable se fija en su definición; la asignación a variables de valores de tipo incompatible no están autorizadas (en C, en cambio, el compilador hace el mejor esfuerzo para dar una interpretación a casi todo tipo de asignaciones). Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido; y también evita la necesidad de notación húngara, que vienen a ser prefijos que se añaden a los nombres de las variables y que indican su tipo.

Page 6: Historia de los compiladores--Fortran pascal c

COMPILADORES PARA PASCAL

Código Fuente

Análisis Léxico

• Marca errores en una copia del código fuente.

Cadena de componentes

léxicos

Traductor Predictivo

Comprobador de Tipos

Código P

ORGANIZACIÓN DEL COMPILADOR

CARACTERÍSTICAS

Compilador de una pasada.

Organizado alrededor del A. Sintáctico.

Analizador descendente recursivo.

Page 7: Historia de los compiladores--Fortran pascal c

COMPILADORES PARA PASCAL

VENTAJAS

• Fue fácil de implementar.

• Generaba poca actividad de entrada/salida.

• El código de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria.

DESVENTAJAS

• Limitaciones en la calidad del código generado.

• Mucha necesidad de memoria.

Page 8: Historia de los compiladores--Fortran pascal c

LENGUAJE C Q

ué e

s C

?

• Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

Cara

cte

rísticas

• Diseñado para programar sistemas en Bell.

• Labs, por Dennis Ritchie.

• Evolucionó de B, y después de ALGOL 68.

• Operadores potentes, pero pobre verificación de tipos.

• Muy extendido a través de UNIX y disponibilidad de compiladores gratuitos y de alta calidad, especialmente gcc.C

Page 9: Historia de los compiladores--Fortran pascal c

COMPILADORES PARA C

Código Fuente

Análisis Léxico y Sintáctico

• Generación de código intermedio.

Forma prefija o postfija de

expresiones o código

ensamblador en caso contrario.

Generación de Código

Lenguaje Ensamblador

Postoptimación Lenguaje

Ensamblador

CARACTERÍSTICAS

Lenguaje de propósito general(Ritchie).

Principal lenguaje de programación en UNIX.

UNIX está escrito en C.

Compiladores de dos pasadas.

El lenguaje ensamblador (elimina proposiciones redundantes o inaccesibles).

ORGANIZACIÓN DEL COMPILADOR

Page 10: Historia de los compiladores--Fortran pascal c

COMPILADORES PARA C

COMPILADOR PDP-11

• Utiliza el descenso recursivo para todo excepto las expresiones.

• Expresiones con precedencia de operadores.

• Código intermedio:

• Expresión notación postfija.

• Ensamblador para estructuras de control.

EN LA OPTIMIZACIÓN

• Código intermedio:

• Expresión de notación prefija.

• Ensamblador de más construcciones.