compiladores deber 5

11

Upload: guissela-guerrero

Post on 07-Jul-2015

272 views

Category:

Education


5 download

DESCRIPTION

En este documentos se encontrar los compiladores para Fortran H, Pascal y C de una forma resumida y entendible.

TRANSCRIPT

Page 1: Compiladores deber 5

FORTRAN

iquestQueacute es Fortran

bull Es un lenguaje de programacioacuten alto nivel de propoacutesito general procedimental e imperativo que estaacute especialmente adaptado al caacutelculo numeacuterico y a la computacioacuten cientiacutefica

Caracteriacutesticas

bull El lenguaje fue disentildeado teniendo en cuenta que los programas seriacutean escritos en tarjetas perforadas de 80 columnas Asiacute por ejemplo las liacuteneas debiacutean ser numeradas y la uacutenica alteracioacuten posible en el orden de ejecucioacuten era producida con la instruccioacuten goto Estas caracteriacutesticas han evolucionado de versioacuten en versioacuten Las actuales contienen subprogramas recursioacuten y una variada gama de estructuras de control

COMPILADORES PARA FORTRAN H

bull Permite al usuario no elegir optimizacioacuten optimizacioacuten de registros o completa

bull Escrito por Lowry y Medlock (1969)

bull Se realizan cuatro pasadas

bull Las dos primeras realizan el aleacutexico y a Sintaacutectico produciendo cuaacutedruplos

bull La siguiente optimiza el coacutedigo y registros

bull La uacuteltima genera coacutedigo objeto a partir de

bull cuaacutedruplos y asignaciones a registros

CARACTERISTICAS

En el leacutexico

bull Devuelve Los pares operador operando son un token operando junto con el token no operando precedente

bull Utiliza precedencia de operadores para las expresiones

bull Optimizaciones simples sustituir multiplicaciones por dos por desplazamientos

En la optimizacioacuten

bull Eliminacioacuten de subexpresiones comunes

bull Traslado de coacutedigo

bull Propagacioacuten de copias

bull Eliminacioacuten de variables de induccioacuten

ESTRUCTURA DE LOS COMPILADORES H

PASCAL

iquestQueacute es Pascal

bull Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Caracteriacutesticas Uacutenicas

bull Otra diferencia importante es que en Pascal el tipo de una variable se fija en su definicioacuten la asignacioacuten a variables de valores de tipo incompatible no estaacuten autorizadas (en C en cambio el compilador hace el mejor esfuerzo para dar una interpretacioacuten a casi todo tipo de asignaciones) Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido y tambieacuten evita la necesidad de notacioacuten huacutengara que vienen a ser prefijos que se antildeaden a los nombres de las variables y que indican su tipo

COMPILADORES PARA PASCAL

CARACTERISTICAS

bull Compilador de una pasada

bull Organizado alrededor del A Sintaacutectico

bull Analizador descendente recursivo

OR

GA

NIZ

AC

IOacuteN

DE

L

CO

MP

ILA

DO

R

OR

GA

NIZ

AC

IOacuteN

DE

LA

M

EM

OR

IA

Coacutedigo para los

procedimientos

Constantes

Pila para registros de activacioacuten

Montiacuteculo para datos asignados aplicando el operador new

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 2: Compiladores deber 5

COMPILADORES PARA FORTRAN H

bull Permite al usuario no elegir optimizacioacuten optimizacioacuten de registros o completa

bull Escrito por Lowry y Medlock (1969)

bull Se realizan cuatro pasadas

bull Las dos primeras realizan el aleacutexico y a Sintaacutectico produciendo cuaacutedruplos

bull La siguiente optimiza el coacutedigo y registros

bull La uacuteltima genera coacutedigo objeto a partir de

bull cuaacutedruplos y asignaciones a registros

CARACTERISTICAS

En el leacutexico

bull Devuelve Los pares operador operando son un token operando junto con el token no operando precedente

bull Utiliza precedencia de operadores para las expresiones

bull Optimizaciones simples sustituir multiplicaciones por dos por desplazamientos

En la optimizacioacuten

bull Eliminacioacuten de subexpresiones comunes

bull Traslado de coacutedigo

bull Propagacioacuten de copias

bull Eliminacioacuten de variables de induccioacuten

ESTRUCTURA DE LOS COMPILADORES H

PASCAL

iquestQueacute es Pascal

bull Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Caracteriacutesticas Uacutenicas

bull Otra diferencia importante es que en Pascal el tipo de una variable se fija en su definicioacuten la asignacioacuten a variables de valores de tipo incompatible no estaacuten autorizadas (en C en cambio el compilador hace el mejor esfuerzo para dar una interpretacioacuten a casi todo tipo de asignaciones) Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido y tambieacuten evita la necesidad de notacioacuten huacutengara que vienen a ser prefijos que se antildeaden a los nombres de las variables y que indican su tipo

COMPILADORES PARA PASCAL

CARACTERISTICAS

bull Compilador de una pasada

bull Organizado alrededor del A Sintaacutectico

bull Analizador descendente recursivo

OR

GA

NIZ

AC

IOacuteN

DE

L

CO

MP

ILA

DO

R

OR

GA

NIZ

AC

IOacuteN

DE

LA

M

EM

OR

IA

Coacutedigo para los

procedimientos

Constantes

Pila para registros de activacioacuten

Montiacuteculo para datos asignados aplicando el operador new

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 3: Compiladores deber 5

bull Permite al usuario no elegir optimizacioacuten optimizacioacuten de registros o completa

bull Escrito por Lowry y Medlock (1969)

bull Se realizan cuatro pasadas

bull Las dos primeras realizan el aleacutexico y a Sintaacutectico produciendo cuaacutedruplos

bull La siguiente optimiza el coacutedigo y registros

bull La uacuteltima genera coacutedigo objeto a partir de

bull cuaacutedruplos y asignaciones a registros

CARACTERISTICAS

En el leacutexico

bull Devuelve Los pares operador operando son un token operando junto con el token no operando precedente

bull Utiliza precedencia de operadores para las expresiones

bull Optimizaciones simples sustituir multiplicaciones por dos por desplazamientos

En la optimizacioacuten

bull Eliminacioacuten de subexpresiones comunes

bull Traslado de coacutedigo

bull Propagacioacuten de copias

bull Eliminacioacuten de variables de induccioacuten

ESTRUCTURA DE LOS COMPILADORES H

PASCAL

iquestQueacute es Pascal

bull Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Caracteriacutesticas Uacutenicas

bull Otra diferencia importante es que en Pascal el tipo de una variable se fija en su definicioacuten la asignacioacuten a variables de valores de tipo incompatible no estaacuten autorizadas (en C en cambio el compilador hace el mejor esfuerzo para dar una interpretacioacuten a casi todo tipo de asignaciones) Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido y tambieacuten evita la necesidad de notacioacuten huacutengara que vienen a ser prefijos que se antildeaden a los nombres de las variables y que indican su tipo

COMPILADORES PARA PASCAL

CARACTERISTICAS

bull Compilador de una pasada

bull Organizado alrededor del A Sintaacutectico

bull Analizador descendente recursivo

OR

GA

NIZ

AC

IOacuteN

DE

L

CO

MP

ILA

DO

R

OR

GA

NIZ

AC

IOacuteN

DE

LA

M

EM

OR

IA

Coacutedigo para los

procedimientos

Constantes

Pila para registros de activacioacuten

Montiacuteculo para datos asignados aplicando el operador new

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 4: Compiladores deber 5

PASCAL

iquestQueacute es Pascal

bull Pascal es un lenguaje de programacioacuten desarrollado por el profesor suizo Niklaus Wirth entre los antildeos 1968 y 1969 y publicado en 1970 Su objetivo era crear un lenguaje que facilitara el aprendizaje de programacioacuten a sus alumnos utilizando la programacioacuten estructurada y estructuracioacuten de datos Sin embargo con el tiempo su utilizacioacuten excedioacute el aacutembito acadeacutemico para convertirse en una herramienta para la creacioacuten de aplicaciones de todo tipo

Caracteriacutesticas Uacutenicas

bull Otra diferencia importante es que en Pascal el tipo de una variable se fija en su definicioacuten la asignacioacuten a variables de valores de tipo incompatible no estaacuten autorizadas (en C en cambio el compilador hace el mejor esfuerzo para dar una interpretacioacuten a casi todo tipo de asignaciones) Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido y tambieacuten evita la necesidad de notacioacuten huacutengara que vienen a ser prefijos que se antildeaden a los nombres de las variables y que indican su tipo

COMPILADORES PARA PASCAL

CARACTERISTICAS

bull Compilador de una pasada

bull Organizado alrededor del A Sintaacutectico

bull Analizador descendente recursivo

OR

GA

NIZ

AC

IOacuteN

DE

L

CO

MP

ILA

DO

R

OR

GA

NIZ

AC

IOacuteN

DE

LA

M

EM

OR

IA

Coacutedigo para los

procedimientos

Constantes

Pila para registros de activacioacuten

Montiacuteculo para datos asignados aplicando el operador new

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 5: Compiladores deber 5

COMPILADORES PARA PASCAL

CARACTERISTICAS

bull Compilador de una pasada

bull Organizado alrededor del A Sintaacutectico

bull Analizador descendente recursivo

OR

GA

NIZ

AC

IOacuteN

DE

L

CO

MP

ILA

DO

R

OR

GA

NIZ

AC

IOacuteN

DE

LA

M

EM

OR

IA

Coacutedigo para los

procedimientos

Constantes

Pila para registros de activacioacuten

Montiacuteculo para datos asignados aplicando el operador new

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 6: Compiladores deber 5

OR

GA

NIZ

AC

IOacuteN

DE

L

CO

MP

ILA

DO

R

OR

GA

NIZ

AC

IOacuteN

DE

LA

M

EM

OR

IA

Coacutedigo para los

procedimientos

Constantes

Pila para registros de activacioacuten

Montiacuteculo para datos asignados aplicando el operador new

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 7: Compiladores deber 5

VENTAJAS

bull Fue faacutecil de implementar

bull Generaba poca actividad de entradasalida

bull El coacutedigo de un procedimiento se compila en memoria y se escribe como una unidad a la memoria secundaria

DESVENTAJAS

bull Limitaciones en la calidad del coacutedigo generado

bull Mucha necesidad de memoria

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 8: Compiladores deber 5

iquestQueacute es C

bull Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caracteriacutesticas de bajo nivel Dispone de las estructuras tiacutepicas 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 coacutedigo en ensamblador con coacutedigo C o acceder directamente a memoria o dispositivos perifeacutericos

Caracteriacutesticas

bull Disentildeado para programar sistemas en Bell

bull Labs por Dennis Ritchie

bull Evolucionoacute de B y despueacutes de ALGOL 68

bull Operadores potentes pero pobre

bull verificacioacuten de tipos

bull Muy extendido a traveacutes de UNIX y

bull disponibilidad de compiladores gratuitos y

bull de alta calidad especialmente gcc

C

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 9: Compiladores deber 5

COMPILADORES PARA C

CARACTERISTICAS

bull Lenguaje de propoacutesito general (Ritchie)

bull Principal lenguaje de programacioacuten en UNIX

bull UNIX estaacute escrito en C

bull Se van a examinar el disentildeado por Ritchie

bull (1979) para PDP-11 y los transportables PCC

bull de Johnson (1979)

bull Compiladores de dos pasadas

bull PDP-11 tiene una tercera opcional para optimizar

bull el lenguaje ensamblador (elimina proposiciones

bull redundantes o innaccesibles)

ESTRUCTURA

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones

Page 10: Compiladores deber 5

El compilador PDP-11

1048708 Utiliza descenso recursivo para todo excepto las

expresiones

1048708 Expresiones con precedencia de

operadores

1048708 Coacutedigo intermedio

Expresiones notacioacuten postfija

Ensamblador para estructuras de control

El compilador PCC

1048708 LALR(1) generado con

YACC

1048708 Coacutedigo intermedio

Expresiones notacioacuten

prefija

Ensamblador demaacutes

construcciones