Lenguajes compiladores

Programación de ordenadores. Análisis. Código objeto. Informática

  • Enviado por: El dinamico
  • Idioma: castellano
  • País: Ecuador Ecuador
  • 2 páginas
publicidad

COMPILADORES II

Capítulo I: Análisis sintáctico y semántico

  • Sea el atributo sintetizado val que da el valor del número binario generado por S en la siguiente gramática. Por ejemplo, con la entrada 101.101 S.val = 5.625

  • S ! L . L | L

    L ! L B | B

    B ! 0 | 1

  • Utilícense atributos sintetizados para determinar S.val.

  • Supóngase que se tienen las siguientes declaraciones en C:

  • typedef struct{

    int a, b;

    }NODO, *APNODO;

    NODO aa[100];

    APNODO bb(int x, NODO y){

    .

    .

    .

    }

    Escríbanse expresiones de tipo para los tipos aa y bb.

    Capítulo II y III: Generación de código objeto y optimización de código objeto

  • Genérese código para las siguientes proposiciones en C para la máquina objeto, suponiendo que todas las variables son estáticas. Supóngase que hay tres registros disponibles.

  • x = a[ i ] + 1

  • a[ i ] = b[c[ i ] ]

  • Considérese el programa para la multiplicación de matrices de la figura siguiente.

  • begin

    for i:= 1 to n do

    for j:= 1 to n do

    c[i,j] := 0;

    for i:= 1 to n do

    for j:= 1 to n do

    for k:= 1 to n do

    c[i,j] := c[i,j] + a[i,k]* b[k,j]

    end

    Suponiendo que a a, b y c se les ha asignado memoria estática y que hay cuatro bytes por palabra en una memoria direccionada por bytes, prodúzcase proposiciones de tres direcciones par el programa de la figura.

  • El programa de la figura siguiente, cuenta números primos desde 2 a n utilizando el método de la criba sobre una matriz debidamente grande.

  • begin

    read n;

    for i:= 2 to n do

    a[i]:= true;

    cuenta := 0

    for i:= 2 to n** .5 do

    if a[i] then

    begin

    cuenta := cuenta + 1;

    for j:= 2*i to n by i do

    a[j] := false;

    end

    print cuenta;

    end

    tradúzcase el programa a proposiciones de tres direcciones suponiendo que a tiene asignada memoria estática.