Análise de Exercícios sobre Compiladores e Linguagens
Classificado em Computação
Escrito em em português com um tamanho de 3,29 KB.
Exercícios Resolvidos sobre Compiladores e Linguagens
Exercício 18 Uma forma bastante comum para a troca de informações entre diferentes plataformas é o intercâmbio de arquivos textuais. Observe que, mesmo entre sistemas operacionais, arquiteturas ou esquemas de codificação diferentes (tais como: mainframes, PCs, ASCII, UTF-16, etc.), todos compartilham de um elemento em comum: o texto. Algum tipo de estruturação é necessário para que seja possível separar de maneira adequada as informações relativas a cada um dos dados. O simples emprego de vírgulas como separadores não é uma iniciativa muito eficiente, uma vez que não permitem descrever os significados dos dados que estes separadores delimitam. Tecnologias como o XML permitem conferir propriedades estruturais e também semânticas aos dados, uma vez que possibilitam ao utilizador especificar as tags que atuarão como elementos delimitadores dos dados. A definição de quais são as tags e qual o seu significado semântico é dada por um documento de especificação chamado DTD – Document Type Definition. Analise cada um dos itens abaixo:
- O DTD pode ser visto como uma gramática em que se define a sintaxe do documento XML.
- A questão de permitir ou não o emprego de letras maiúsculas das tags está diretamente relacionada à forma como o tokenizador (scanning) reconhece e classifica cada token.
- A validação de um documento qualquer equivale a uma análise sintática tomando como base as definições dadas no DTD.
De acordo com a sua análise, está correto o que se afirma em: E) I, II e III.
Exercício 19 Dentre os diferentes tipos de mensagens de erro que podem ser reportadas por um compilador, quais dentre as apresentadas abaixo são de natureza léxica?
B) Esperado fim de comentário.
Exercício 20 Os diferentes lexemas presentes em uma linguagem de programação podem ser descritos através de um conjunto de expressões regulares, uma vez que apresentam as características associadas à categoria das linguagens regulares. Assim, podemos entender que as ferramentas geradoras de analisadores (como o Lex, por exemplo) constroem seus analisadores léxicos a partir da integração de diferentes autômatos finitos determinísticos obtidos por expressões regulares que descrevem cada grupo de lexemas. Neste contexto, é correto afirmar que:
C) Tanto as palavras reservadas quanto os identificadores apresentam o mesmo padrão, sendo distinguidos apenas durante a classificação do token, após concluída a sua composição. A classificação de cada token é obtida de acordo com o estado final corrente.
Exercício 21 Supondo o programa C dado abaixo:
1 int main (void)
2 {
3 /* if I do this then do you get it wrong? */
4 "if I do this then do you get it wrong?";
5
6 if (I_do_this)
7 /*then*/ do_you(get+it-wrong)?or:not;
8 else this(is_1.load,of->old*whatsit);
9 }
C) I e II, apenas.
Exercício 22 [COPEVE-UFAL - 2011 - UFAL - Analista de Tecnologia da Informação] Em um compilador, o analisador léxico:
C) Cria uma sequência de símbolos.