Uma gramática livre do contexto (GLC) é um modelo computacional geralmente utilizado para definir linguagens de programação

Uma gramática livre do contexto (GLC) é um modelo computacional geralmente utilizado para definir linguagens de programação
ENADE 2014 - QUESTÃO 25
Uma gramática livre do contexto (GLC) é um modelo computacional geralmente utilizado para definir linguagens de programação e, quando está de acordo com a Forma de Backus-Naur (BNF), permite que alguns operadores sejam utilizados no lado direito de suas produções, como o operador | (pipe) que indica seleção, o operador [] que indica que o operando em questão é opcional, e o operador * que indica repetição de 0 ou mais vezes.

Projetar um compilador para uma determinada linguagem envolve, entre outras coisas, especificar quais são “os símbolos válidos nesta linguagem, bem como quais são as regras sintáticas que a definem.

A linguagem de programação Java é uma linguagem com suporte à orientação a objetos que não permite herança múltipla e que permite que uma classe implemente múltiplas interfaces. A seguir, exibem-se trechos de código sintaticamente válidos na linguagem Java.

Trecho 1:  
class A extends B { }  

Trecho 2: 
class F implements C { } 

Trecho 3: 
class J extends A implements C, D { } 

No trecho 1, cria-se uma classe chamada A que herda de uma classe chamada B. No trecho 2, cria-se uma classe chamada F que implementa uma interface chamada C. No trecho 3, cria-se uma classe chamada J que herda de uma classe chamada A e implementa duas interfaces, chamadas C e D.

Considere que:

*  <classdecl> é um não terminal cujo intuito é dar origem a declarações de classes;

*  <classbody> é um não terminal cujo intuito é dar origem ao corpo de classes;

* os terminais aparecem entre aspas duplas;

* “id” é um símbolo que representa qualquer identificador válido, como nomes de classes ou variáveis.

A gramática que especifica uma linguagem que não permita herança múltipla e que implemente zero ou mais interfaces é

A) <classdecl> “class” “id” [ “extends “ ] “id” <classbody>

B) <classdecl> “class” “id” (“extends “ “id")* <classbody>

C) <classdecl> “class” “id” [ “extends “] “id” [“implements” (, | “id")*] <classbody>

D) <classdecl> “class” “id” [ “extends “ “id"] [“implements” “id” ("," “id")*] <classbody>

E) <classdect> “class” “id” [extends “ “id"] “implements” “id” (“," “id")* <classbody>

RESOLUÇÃO:
Não temos resolução para essa questão! Você sabe explicar? Copie o link dessa página e envie sua resolução clicando AQUI!

GABARITO:
D) <classdecl> “class” “id” [ “extends “ “id"] [“implements” “id” ("," “id")*] <classbody>

QUESTÃO DISPONÍVEL EM:

COMENTÁRIOS

Todas as Postagens Não foram encontradas postagens VEJA TODOS Leia Mais Resposta Cancelar resposta Deletar Por Home PAGINAS POSTS Veja todos RECOMENDADOS PARA VOCÊ Tudo Sobre ARQUIVOS BUSCAR TODOS OS POSTS Nenhuma postagem foi encontrada Voltar para Home Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Sep Out Nov Dez Agora mesmo 1 minuto atrás $$1$$ minutos agora 1 hora atrás $$1$$ horas atrás Ontem $$1$$ dias atrás $$1$$ semanas atrás mais de 5 semanas atrás Seguidores Seguir CONTEÚDO PREMIUM BLOQUEADO PASSO 1: Compartilhar em uma rede social PASSO 2: Clique no link na sua rede social Copiar todo o código Selecionar todo o código Todos os códigos foram copiados Não é possível copiar os códigos / textos, pressione [CTRL] + [C] para copiar Tabela de conteúdo