FORTRAN
¿Qué es
Fortran ?
• Es un lenguaje de programación 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.
Características
• 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.
COMPILADORES PARA FORTRAN H
• 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
CARACTERISTICAS
En el léxico
• 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 la optimización
• Eliminación de subexpresiones
comunes.
• Traslado de código.
• Propagación de copias.
• Eliminación de variables de
inducción.
ESTRUCTURA DE LOS COMPILADORES H
PASCAL
¿Qué es 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.
Características
Únicas
• Otra 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.
COMPILADORES PARA PASCAL
CARACTERISTICAS
• Compilador de una pasada.
• Organizado alrededor del A.
Sintáctico.
• Analizador descendente
recursivo.
ORGANIZACIÓNDEL
COMPILADOR
ORGANIZACIÓNDELA
MEMORIA
Código para los
procedimientos
Constantes
Pila para registros
de activación
Montículo para
datos asignados
aplicando el
operador new
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
¿Qué es 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.
Caracterí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
COMPILADORES PARA C
CARACTERISTICAS
• Lenguaje de propósito general
(Ritchie)
• Principal lenguaje de programación
en UNIX
• UNIX está escrito en C
• Se van a examinar el diseñado por
Ritchie
• (1979) para PDP-11 y los
transportables PCC
• de Johnson (1979)
• Compiladores de dos pasadas
• PDP-11 tiene una tercera opcional
para optimizar
• el lenguaje ensamblador (elimina
proposiciones
• redundantes o innaccesibles)
ESTRUCTURA
El compilador PDP-11
􀂄 Utiliza descenso recursivo para
todo excepto las
expresiones
􀂄 Expresiones con precedencia de
operadores
􀂄 Código intermedio:
Expresiones notación postfija
Ensamblador para estructuras
de control
El compilador PCC
􀂄 LALR(1) generado con
YACC
􀂄 Código intermedio:
Expresiones notación
prefija
Ensamblador demás
construcciones

Compiladores deber 5

  • 2.
    FORTRAN ¿Qué es Fortran ? •Es un lenguaje de programación 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. Características • 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.
  • 3.
  • 4.
    • Permite alusuario 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 CARACTERISTICAS En el léxico • 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 la optimización • Eliminación de subexpresiones comunes. • Traslado de código. • Propagación de copias. • Eliminación de variables de inducción. ESTRUCTURA DE LOS COMPILADORES H
  • 5.
    PASCAL ¿Qué es 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. Características Únicas • Otra 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.
  • 6.
    COMPILADORES PARA PASCAL CARACTERISTICAS •Compilador de una pasada. • Organizado alrededor del A. Sintáctico. • Analizador descendente recursivo.
  • 7.
    ORGANIZACIÓNDEL COMPILADOR ORGANIZACIÓNDELA MEMORIA Código para los procedimientos Constantes Pilapara registros de activación Montículo para datos asignados aplicando el operador new
  • 8.
    VENTAJAS • Fue fácilde 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
  • 9.
    ¿Qué es 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. Caracterí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
  • 10.
    COMPILADORES PARA C CARACTERISTICAS •Lenguaje de propósito general (Ritchie) • Principal lenguaje de programación en UNIX • UNIX está escrito en C • Se van a examinar el diseñado por Ritchie • (1979) para PDP-11 y los transportables PCC • de Johnson (1979) • Compiladores de dos pasadas • PDP-11 tiene una tercera opcional para optimizar • el lenguaje ensamblador (elimina proposiciones • redundantes o innaccesibles) ESTRUCTURA
  • 11.
    El compilador PDP-11 􀂄Utiliza descenso recursivo para todo excepto las expresiones 􀂄 Expresiones con precedencia de operadores 􀂄 Código intermedio: Expresiones notación postfija Ensamblador para estructuras de control El compilador PCC 􀂄 LALR(1) generado con YACC 􀂄 Código intermedio: Expresiones notación prefija Ensamblador demás construcciones