Carregando...
Carregando...
Ajude a melhorar a plataforma
Dado o seguinte trecho de código em uma linguagem de programação:
if (x > 5) {
y = 10;
}
Qual regra gramatical representa a estrutura condicional "if" no código acima?
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa A - <stmt> ::= if (<expr>) { <stmt> }
A Análise Sintática utiliza Gramáticas Livres de Contexto (GLC) para descrever a estrutura hierárquica de uma linguagem de programação. Essas gramáticas são compostas por regras de produção que definem como os tokens podem ser combinados para formar construções válidas, como declarações (statements) e expressões.
No código fornecido: if (x > 5) { y = 10; }:
if: Palavra-chave inicial.(x > 5): Uma expressão condicional (geralmente representada por <expr>).{ y = 10; }: Um bloco de comandos (geralmente representado por <stmt>).Vamos comparar as opções com a estrutura do código:
if seguido de uma expressão entre parênteses e um bloco entre chaves.else no código original.| Opção | Análise |
| :--- | :--- |
| A | Correta. Define o if com expressão e corpo, exatamente como no exemplo. |
| B | Incorreta. Define um <expr> (expressão), mas o if é um comando (<stmt>). |
| C | Incorreta. Falta os parênteses da expressão e obriga a existência de um else. |
| D | Incorreta. Define como <expr> e não prevê o corpo do comando entre chaves. |
| E | Incorreta. Embora seja uma regra válida em muitas gramáticas, ela descreve a forma completa com else, que não está presente no trecho analisado. |
A regra na alternativa A mapeia perfeitamente a estrutura de comando condicional simples apresentada, onde um comando (stmt) é composto pela palavra if, uma expressão entre parênteses e um bloco de comandos.
Alternativa A.