Exercícios resolvidos sobre compiladores, análise léxica e XML/DTD

ComputaçãoAtualizado em 3,29 KB

Resumo

O documento reúne exercícios resolvidos sobre compiladores e linguagens de programação, abordando DTD e validação de documentos XML, classificação de erros de compilação, expressões regulares e analisadores léxicos gerados por ferramentas como o Lex. Inclui também um exemplo de código C para identificar tokens e questões sobre a função do analisador léxico.

Pontos-chave

  • O DTD funciona como uma gramática que define a sintaxe de um documento XML.
  • A validação de um documento equivale a uma análise sintática baseada nas definições do DTD.
  • Lexemas de uma linguagem de programação podem ser descritos por expressões regulares.
  • Ferramentas como o Lex constroem analisadores léxicos a partir de autômatos finitos determinísticos.
  • Palavras reservadas e identificadores seguem o mesmo padrão e são distinguidos apenas na classificação do token.
  • O analisador léxico tem como saída uma sequência de símbolos (tokens).

Teste-se

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:

  1. O DTD pode ser visto como uma gramática em que se define a sintaxe do documento XML.
  2. 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.
  3. 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.

Baixar

PDF Word HTML

Perguntas frequentes

O que é um DTD?

O DTD (Document Type Definition) é um documento de especificação que define as tags e o seu significado semântico em um documento XML. Ele pode ser visto como uma gramática que define a sintaxe do documento.

Como o Lex constrói o analisador léxico?

Segundo o texto, o Lex e ferramentas semelhantes constroem analisadores léxicos integrando diferentes autômatos finitos determinísticos obtidos a partir de expressões regulares que descrevem cada grupo de lexemas.

Teste-se

Cartões de revisão

Clique em um cartão para ver a resposta.

Teste

1. Segundo o texto, o que é o DTD?
2. Como a validação de um documento XML é descrita no texto?
3. Como são descritos os lexemas de uma linguagem de programação?
4. Quando palavras reservadas e identificadores são distinguidos, segundo o texto?
5. Qual é a saída típica de um analisador léxico, conforme o exercício 22?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.