Conceitos de Linguagens de Programação Questões de Revisão
Por: Micael Levi • 18/6/2020 • Exam • 858 Palavras (4 Páginas) • 202 Visualizações
Capitulo 16 – Questões de Revisão
1. Quais são os três usos primários de lógica simbólica na lógica formal?
A lógica simbólica pode ser usada para as três necessidades básicas da lógica formal:
expressar proposições, expressar os relacionamentos entre proposições e descrever
como novas proposições podem ser inferidas a partir de outras proposições que se
assume verdadeiras.
3. Quais são os dois modos nos quais uma proposição pode ser definida?
Proposições podem ser definidas de dois modos: um no qual a proposição é definida
como verdadeira e um no qual a verdade da proposição é algo que deve ser
determinado. Em outras palavras, as proposições podem ser definidas como fatos ou
consultas. As proposições de exemplo podem ser ambos.
5. O que são antecedentes? E consequentes?
O lado direito de uma proposição na forma clausal é chamado de antecedente. O lado
esquerdo é chamado de consequente porque é a consequência da verdade do
antecedente.
7. Quais são as formas das cláusulas de Horn?
Os tipos especiais de proposições, chamados de cláusulas de Horn, podem ser de
apenas duas formas: uma única proposição atômica do lado esquerdo ou um lado
esquerdo vazio.
9. O que significa para uma linguagem ser não procedural?
Os programas em tais linguagens não descrevem exatamente como um resultado
será computado, mas a forma do resultado. A diferença é o fato de assumirmos que
o sistema de computação pode, de alguma forma, determinar como o resultado será
computado. O que é necessário para fornecer essa capacidade para linguagens de
programação lógica é um meio conciso de fornecer ao computador tanto as
informações relevantes quanto um método de inferência para computar os resultados
desejados. O cálculo de predicados fornece a forma básica de comunicação com o
computador, e a resolução fornece a técnica de inferência.
11. O que é uma variável não instanciada?
Uma variável que ainda não recebeu um valor é chamada de não instanciada.
13. O que é uma conjunção?
Conjunções contêm múltiplos termos separados por operações E lógicas. Em Prolog,
a operação E é implicada. As estruturas que especificam proposições atômicas em
uma conjunção são separadas por vírgulas, então alguém pode considerar as vírgulas
como operadores E.
15. Explique a diferença entre uma busca primeiro em profundidade e primeiro em
amplitude, discutindo como múltiplos objetivos são satisfeitos.
Uma busca primeiro em profundidade (depth first) encontra uma sequência completa
de proposições – uma prova – para o primeiro subobjetivo antes de trabalhar com os
outros. Uma busca primeiro em largura (breadth first) funciona em todos os
subobjetivos de um objetivo em paralelo. Os projetistas de Prolog escolheram a
abordagem de busca primeiro em profundidade porque ela pode ser feita com menos
recursos computacionais. A abordagem primeiro em largura é uma busca paralela
que pode requerer uma grande quantidade de memória.
17. O que está errado com a sentença Prolog K is K + 1.
Se K não está instanciada, a referência a ela no lado direito é indefinida e a cláusula
falha. Se K já está instanciada, a cláusula falha, porque o operando esquerdo não
pode ter uma instanciação atual quando is for avaliada. Em ambos os casos, a
instanciação de K para o novo valor não ocorrerá. (Se o valor de K + 1 for requerido,
ele pode ser vinculado para algum novo nome).
19. Explique a estratégia de programação em Prolog chamada gerar e testar.
Em
...