12
COMPILADORES Fortran H, C y Pascal Carlos Marcelo Rivadeneira Velasco PUCE-SI

Compiladores fortran,c y pascal

Embed Size (px)

Citation preview

COMPILADORESFortran H, C y Pascal

Carlos Marcelo Rivadeneira Velasco

PUCE-SI

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ística

s

• Es un lenguaje de programación de alto nivel • Es de propósito general, procedimental e

imperativo• Esta especialmente adaptado al calculo numérico

y a la computación científica especialmente a los cálculos mas complicados

• Desarrollado en IBM bajo supervisión de John Backus.

FORTRAN I• Nombres tenian mas de 6 caracteres• Codigo muy rapido• Compilacion no separada.

FORTRAN II• Compilacion independiente• Arreglaba los errores

FORTRAN IV• Seleccion logica declaraciones if• Declaraciones tipo explicitas.

FORTRAN 77• Declaraciones if, then, else• Control de repeticion while

FORTRAN 90• Recursividad• Apuntadores

Versiones de Fortran

Estilo de programación con FortranPortabilidad: Para asegurar la portabilidad del código, se recomienda usar sólo el estándar de Fortran 77.

Estructura del Programa: La estructura total del programa deberá ser modular. Cada subprograma deberá resolver una tarea bien definida. Mucha gente prefiere escribir cada subprograma en un archivo por separado.

Variables: Declarar siempre todas las variables. No se recomienda la declaración implícita. Intentar compactar a 6 caracteres como máximo para nombres de variables, o asegurarse que los primeros 6 caracteres son únicos.

Arreglos: En muchos casos es mejor declarar todos los arreglos grandes en el programa principal y entonces pasarlos como argumentos a las distintas subrutinas. De esta forma toda la asignación de espacio es hecha en un sólo lugar.

Subprogramas: Nunca se debe permitir que las funciones tengan "efectos laterales", por ejemplo: no se deben cambiar los valores de los parámetros de entrada. Usar subrutinas en tales casos. En las declaraciones separar los parámetros, bloques comunes y variables locales. Minimizar el uso de bloques comunes.

Compiladores para Fortran H

Compiladores para Fortran H

Características• Permite al usuario no

elegir optimización, optimización de registros o completa.

• Escrito por Lowry y Medlock (1969)

• Se realizan varias 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

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

• 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ística

s

• Lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth.

• Fue un lenguaje que facilito el aprendizaje de programación utilizando la programación estructurada.

• Introdujo la sentencia case.• Es muy simple y sencillo• El código está dividido en porciones fácilmente legibles llamadas

funciones o procedimientos

Compiladores para Pascal• Compilador de una pasada. • Organizado alrededor del A. Sintáctico. • Analizador descendente recursivo.Características

• Código para los procedimientos• Constantes• Pila para registros de activación• Montículo para datos asignados aplicando el operador

new

OrganizaciónMemoria

• 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

Ventajas

• Limitaciones en la calidad del código generado

• Mucha necesidad de memoriaInconvenientes

Compiladores para Pascal

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ística

s

• Diseñado para programar sistemas en Bell Labs, por Dennis Ritchie.

• Evolucionó de B, y después de ALGOL 68.• Operadores potentes, pero pobres. • Verificación de tipos muy extendido a través de UNIX y

disponibilidad de compiladores gratuitos y de alta calidad, especialmente gcc.

Compiladores para C

CA

RA

CTE

RÍS

TIC

AS

Lenguaje de propósito general (Ritchie)Principal lenguaje de programación en UNIXUNIX está escrito en CCompiladores de dos pasadas PDP-11 tiene una tercera opcional para optimizar el lenguaje ensamblador

Com

pila

dor

PD

P-1

1

Utiliza descenso recursivo menos para expresionesExpresiones con precedencia de operadoresCódigo intermedio• Expresiones

notación postfija

• Ensamblador para estructuras de control

CO

MPIL

AD

OR

PC

C

Generado con YACC Código intermedio• Expresiones

notación prefija• Ensamblador

demás construcciones

Compiladores para C