Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Historia de los compiladores--Fortran pascal c
1. PONTIFICIA UNIVERSIDAD CATÓLICA DEL
ECUADOR
Carlos Yépez
Escuela de Ingeniería en Sistemas
COMPILADORES DE:
Fortran H, Pascal, y C
2. 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.
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. 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
4. 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
5. 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
• 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.
6. 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.
7. 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.
8. LENGUAJE C
QuéesC?
• 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
9. 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
10. 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.