Baixe o app para aproveitar ainda mais
Prévia do material em texto
GRA0914 PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO GR2311-212-9 - 202120.ead-17683.01 ATIVIDADE 1 Questão Dissertativa Entende-se por sintaxe a forma das expressões, instruções e unidades de programa. Já semântica é o significado das expressões, declarações e unidades de programa. Ex: a sintaxe de uma instrução Java “while” é: while (boolean_expr) statement A semântica deste formulário de instrução é que, quando o valor atual do valor booleano (True/False) expressão for verdadeira, a instrução incorporada é executada. A forma de uma declaração deve sugerir fortemente o que a declaração pretende realizar. Sintaxe Semântica A gramática de um idioma é chamada de sintaxe. Semântica lida com o significado de uma frase. Os erros de sintaxe podem ser detectados no momento da compilação e são fáceis de rastrear. Os erros de semântica são difíceis de encontrar. Eles são encontrados principalmente em tempo de execução ou quando os resultados não correspondem às expectativas. Baseado nos dados apresentados e no conteúdo estudado, explique brevemente, com suas palavras, o que se entende por sintaxe e semântica de uma linguagem de programação. Dê um exemplo para ilustrar a diferença entre um erro de sintaxe e um erro de semântica. Resposta Com base nas pesquisas na internet e no próprio material de estudo fornecido pela UAM, a sintaxe diz respeito à estrutura ou gramática da linguagem. Ele responde à pergunta: como faço para construir uma frase válida? Todas as línguas, até mesmo o inglês e outras línguas humanas (também conhecidas como "naturais"), possuem gramáticas, ou seja, regras que definem se a frase foi construída corretamente ou não. Aqui estão algumas regras de sintaxe da linguagem C: · declarações separadas com ponto e vírgula · coloque a expressão condicional de uma instrução IF entre parênteses · agrupe várias instruções em uma única instrução, colocando-as entre chaves · tipos de dados e variáveis devem ser declarados antes da primeira instrução executável (este recurso foi eliminado em C99. C99 e posteriores permitem declarações de tipos mistos). A semântica trata do significado da frase. Ele responde às perguntas: esta frase é válida? Se sim, o que significa a frase? Por exemplo: x++; // increment foo(xyz, --b, &qrs); // call foo são instruções C sintaticamente válidas. Mas o que eles significam? É mesmo válido tentar transformar essas instruções em uma sequência executável de instruções? Essas questões estão no cerne da semântica. Considere o operador ++ na primeira instrução. Em primeiro lugar, é mesmo válido tentar isso? · Se x for um tipo de dados flutuante, esta declaração não terá significado (de acordo com as regras da linguagem C) e, portanto, é um erro, embora a declaração esteja sintaticamente correta. · Se x for um ponteiro para algum tipo de dados , o significado da instrução é "adicionar sizeof ( algum tipo de dados ) ao valor no endereço x e armazenar o resultado no local no endereço x". · Se x for um escalar, o significado da declaração é "adicione um ao valor no endereço x e armazene o resultado no local no endereço x". Finalmente, observe que algumas semânticas não podem ser determinadas em tempo de compilação e, portanto, devem ser avaliadas em tempo de execução. No exemplo do operador ++, se x já está no valor máximo para seu tipo de dados, o que acontece quando você tenta adicionar 1 a ele? Em suma, sintaxe é o conceito que se preocupa apenas se a frase é válida ou não para a gramática da língua. A semântica é sobre se a frase tem um significado válido ou não.
Compartilhar