TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Os Compiladores e Contabilidade

Por:   •  7/9/2021  •  Trabalho acadêmico  •  2.563 Palavras (11 Páginas)  •  177 Visualizações

Página 1 de 11

EAD – 1 – 1 Compiladores e computabilidade

[pic 1]

PERGUNTA 1

  1. Os diferentes elementos básicos que compõe uma linguagem, tais como as palavras reservadas, identificadores, operadores e quaisquer outros lexemas estabelecidos por ela, também possuem uma estrutura sintática e podem ser descritos formalmente através de expressões regulares. Entretanto a tarefa de reconhecimento dos lexemas é realizada pelo Analisador Léxico, acontecendo de maneira separada da Análise Sintática do código.
    Assim, um analisador léxico é antes de mais nada um elemento reconhecedor destas estruturas e pode ser definido como um autômato finito, dada a natureza regular dos elementos da linguagem.
    Julgue cada uma das afirmativas a seguir e assinale a alternativa correta.
    I) As gramáticas regulares não permitem a descrição de estruturas aninhadas e portanto não são capazes de descrever simultaneamente os lexemas e também as demais estruturas típicas nas linguagem de programação, tais como parênteses balanceados e comandos aninhados.
    II) A separação das etapas permite utilizar gramaticas regulares, que são mais simples e mais eficientes, para a descrição dos lexemas tornado a implementação do reconhecedor mais fácil.
    III) O analisador sintático ficaria muito mais complexo, pois estaria a todo momento preocupado em prever a ocorrência de símbolos irrelevantes, tais como espaços em branco, que teriam sido eliminados pela análise léxica.

[pic 2]

a.

Apenas o item I é verdadeiros, justificando a separação dos analisadores.

[pic 3]

b.

Apenas os itens I e III são verdadeiros, mas o item iii não justifica a separação dos analisadores.

[pic 4]

c.

Apenas os itens I e II são verdadeiros, mas apenas o item ii justifica a separação dos analisadores.

[pic 5]

d.

Todos itens são verdadeiros, mas nenhum deles justificam a separação dos analisadores.

[pic 6]

e.

Todos itens são verdadeiros e os motivos apresentados justificam a separação dos analisadores.

PERGUNTA 2

  1.  

A gramática dada a seguir é LL(1). Nela os elementos +, *, (, ) e id configuram como símbolos terminais, enquanto os E, T, F, E’ e T’ são considerados não-terminais. A tabela de movimentos M fornece ao reconhecedor o número da regra que deve ser aplicada durante a análise da sentença, sendo necessário apenas conhecer o não-terminal a ser derivado e o primeiro símbolo presente no restante da entrada.
[pic 7]
Sobre a construção de analisadores sintáticos deste tipo é incorreto afirmar que:

[pic 8]

a.

A tabela indica que a regra 1 deve ser aplicada quando um símbolo não-terminal E estiver sendo derivado e na entrada houver algum elemento que pertença ao conjunto First(TE’).

[pic 9]

b.

Por ser uma produção que deriva para vazio, a regra 3 somente será aplicada se o símbolo não-terminal sendo derivado for o E’ e o símbolo corrente na entrada pertencer ao conjunto Follow(E’).

[pic 10]

c.

Células marcadas com “-“ indicam um movimento não previsto e assim, qualquer situação que leve o reconhecedor a uma delas deve ser entendida como um problema sintático da sentença e reportado como um erro.

[pic 11]

d.

A aplicação da regra 8 deve ser feita antes da regra 7, segundo a interpretação que temos da tabela. Esse fato se comprova ao observarmos que o símbolo “(“ poderia ocorrer imediatamente após um “id” segundo o que determina as produções da gramática.

[pic 12]

e.

Regras de produção que apresentam prefixos comuns para o mesmo não-terminal impedem a construção de um analisador deste tipo, pois implicarão em duas ou mais regras válidas (aplicáveis) para a mesma combinação de símbolos. Ou seja, a tabela ficaria com dois ou mais valores em uma mesma célula.

PERGUNTA 3

  1. Um processo algorítmico tem o objetivo de instruir o executor quanto às ações que deve realizar e a sua sequência. Para que isso ocorra é necessário que as instruções sejam dadas num formato compreensível àquele que as realizará. A programação de computadores é feita descrevendo o algoritmo em instruções de uma linguagem de programação e que, quando ditas de alto nível, apresentam características mais próximas à estrutura das linguagens humanas do que a das máquinas. Analise as alternativas a seguir e assinale a que julgar incorreta.

[pic 13]

a.

Quando a linguagem de codificação do algoritmo é de alto nível, precisamos de um compilador para que o algoritmo original seja traduzido para um equivalente dado em linguagem de baixo nível.

[pic 14]

b.

A construção de compiladores envolve conhecimentos relativos à estrutura da linguagem e à capacidade de tradução de uma para outra, preservando fielmente cada uma das funcionalidades descritas no código fonte.

[pic 15]

c.

O uso de métodos formais permite tanto a especificação das linguagens de programação quanto a implementação de reconhecedores para as suas estruturas, compreendendo assim os fundamentos teóricos para o estudo e a construção de compiladores.

[pic 16]

d.

Os conhecimentos relacionados à construção de compiladores encerram-se estritamente nesta atividade, oferecendo pouco ou mesmo nenhuma possibilidade de aplicação em outras áreas que não seja a tradução para linguagem de máquina.

[pic 17]

e.

A compreensão das estruturas de uma linguagem e dos processos que envolvem a sua de interpretação permite que tais conhecimentos sejam aplicados não apenas na construção de compiladores, mas também na interpretação de documentos estruturados, com as páginas da web; parâmetros em linhas de comandos ou padrões de endereços na web, por exemplo.

...

Baixar como (para membros premium)  txt (17.4 Kb)   pdf (148.3 Kb)   docx (575.9 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com