Exercicios Calc 2

Embed Size (px)

DESCRIPTION

resolução de esxercícios

Citation preview

  • Lista de Exerccios

    1) Qual a desvantagem de haver demasiados recursos em umalinguagem?Linguagens muito complexas tendem a ter um custo de implementacao muito alto comotambem o custo de aprendizado/treinamento dos programadores.2) Descreva os trs mtodos gerais para implementar uma linguagem deprogramao.Compilao: Em um caso extremo, programas podem ser traduzidos para linguagem demaquina. Tem a vantagem de uma execucao de programa muito rapida assim que oprocesso de traducao for concluido. No entanto o processo de traducao pode ser lento. Aotimizacao que pode tornar os programas menores ou mais rapidos e uma parte opcionalda compilacao.Interpretao: Na extremidade oposta dos metodos de implementacao, os programaspodem ser interpretados por outro programa chamado interpretador, sem nenhumaconversao. Possui a vantagem de permitir uma facil implementacao de programas (errosde execucao podem ser facilmente e rapidamente mostrados). Porem sua execucao emais lenta (10 a 100 vezes) que programas compilados devido a decodificacao dasinstrucoes de linguagem de alto nivel. Outra desvantagem e que geralmente requer maisespaco. Interpretacao pura deve ser utilizada em linguagens que nao possuam grandecomplexidade.Hbrido: E um meio termo entre compilador e interpretador puro, onde um programade linguagem de alto nivel e traduzido para uma linguagem intermediaria que permitefacil interpretacao.3) Escreva uma EBNF para uma instruo de chamada a um mtodo Java. -> [.] ( [{ ,}] ) -> | -> a | b | c ... -> 1 | 2 | 3 ...4) Escreva uma EBNF para uma instruo de cabealho(header) paradefinio de uma classe Java. -> [ ] [] class [extends] [implements { , }] { } -> public | private | protected -> abstract | final -> a | b | c ...5) Prove que a seguinte gramtica ambgua. -> -> + | -> a | b | cA prova pode ser feita mostrando duas arvores de analise que gerem uma mesma cadeia.Ex.: a + b + c1)

    + + c a b

  • 2)

    + + a b c6) Apresente uma definio semntica operacional dos seguintescdigos:A) IF-THEN-ELSE do C

    if expressao = 0 goto else;instrues...;goto saida;

    else: instrues...;saida: instrues...;B) FOR do C

    expressao1;loop: if expressao2 = 0 goto saida;

    instrues ;expressao3;goto loop;

    saida: instrues...;7) Escreva a funo de correspondncia da semntica denotacional paraas seguintes instrues:A) Nmeros binriosMbin(0) = 0;Mbin(1) = 1;Mbin( 0) = 2 * Mbin()Mbin( 1) = 2 * Mbin() + 1B) WHILE do CAdmitindo-se as funcoes Msl que relaciona listas de instrucoes com estados e Mb querelaciona expressoes booleanas com valores boleanos (ou error):Ml(while B do L, s) =if Mb(B, s) = undefthen errorelse if Mb(B, s) = falsethen selse if Msl(L,s) = errorthen errorelseMl(while B do L, Msl(L, s))8) De qual maneira a semantica operacional e a semntica denotacionaldiferem?Na semantica operacional, as mudancas de estados sao definidas por algoritmoscodificados.Na semantica denotacional, as mudancas de estados sao definidas por funesmatemticas.9) Compute a pr-condio mais fraca para cada uma das seguintessequencias de instrues de atribuio e suas ps-condies :A) a = 3 * (2 * b + a)

  • b = 2 * a 1{b > 5}{2b + a > 1}

    B) while y x doy = y + 1end{y = x}{y