compiladores deber 5
DESCRIPTION
En este documentos se encontrar los compiladores para Fortran H, Pascal y C de una forma resumida y entendible.TRANSCRIPT
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
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
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
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
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
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
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
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
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
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