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
Top Related