Vous êtes sur la page 1sur 10

LGICA PARA COMPUTAO

UNIDADE 04 FORMALIZAO DE PROGRAMAS E


SISTEMAS DE COMPUTAO SIMPLES
Profa. Joyce Martins (joyce@furb.br)

4. FORMALIZAO DE PROGRAMAS
MOTIVAO:
O desenvolvimento de um programa torna-se mais fcil se a
linguagem de programao em uso estiver prxima ao programa a
ser resolvido. Isto , se a linguagem incluir construes que refletem a
terminologia e/ou os elementos usados na descrio do problema
(PRICE; TOSCANI, 2000, p.1).

4. FORMALIZAO DE PROGRAMAS
Quais os modelos computacionais ou paradigmas de programao
existentes?
modelo imperativo: os programas consistem em sequncias de comandos
que devem ser executados para a obteno de um resultado.
Linguagens orientadas a procedimentos: Pascal, C, entre outras.
Linguagens orientadas a objetos: Smalltalk, Java , entre outras.
modelo declarativo: os programas no possuem comandos, apenas
"roteiros" que definem o que deve ser computado, de forma independente das
manipulaes que devem ser feitas para a obteno dos resultados.
Linguagens funcionais: LISP (LISt Processing).
Linguagens de programao em lgica: PROLOG (PROgrammation
en LOGique).

4. FORMALIZAO DE PROGRAMAS
A soluo de um problema em PROLOG apresentada atravs de frmulas da
lgica de predicados.
Assim como na lgica de predicados, um programa PROLOG permite
estabelecer relaes entre objetos, sendo que a representao de determinado
problema ou situao feita atravs de um conjunto finito de sentenas lgicas
denominadas clusulas.

4. FORMALIZAO DE PROGRAMAS
As clusulas podem ser de dois tipos:
fatos: denotam algum conhecimento (informao ou verdade incondicional).
Os fatos so expressos atravs de predicados com argumentos constantes
tomados do conjunto universo.
EXEMPLO 1:
homem(mrio).
genitor(mrio, jos).

regras: expressam como novos fatos podem ser deduzidos, isto , definem as
condies que devem ser satisfeitas para que uma certa declarao seja
considerada verdadeira.
EXEMPLO 2:
pai(X,Y):- genitor(X,Y), homem(X).

4. FORMALIZAO DE PROGRAMAS
Para traduzir frmulas da lgica dos predicados para programas PROLOG,
deve-se usar a seguinte notao:
smbolos para constantes: iniciam com letra minscula, seguida por uma
sequncia qualquer de letras, dgitos ou _. Ou pode ser qualquer sequncia de
caracteres entre aspas duplas;
smbolos para variveis: iniciam com letra maiscula ou _ , seguido por uma
sequncia qualquer de letras, dgitos ou _;
smbolos para funes ou predicados: iniciam com letra minscula, seguida
por uma sequncia qualquer de letras, dgitos ou _;
todas as clusulas terminam com ponto ( . );
a linguagem case sensitive;
homem(mrio).
genitor(mrio, jos).
pai(X,Y):- genitor(X,Y), homem(X).

4. FORMALIZAO DE PROGRAMAS
conectivos:
a) ( ) - negao
lgica de predicados:

(homem(samuel))

em PROLOG:

not(homem(samuel))

b) () - conjuno
lgica de predicados:

genitor(x,y) homem(x)

em PROLOG:

genitor(X,Y), homem(X)

4. FORMALIZAO DE PROGRAMAS
conectivos:
c) () - disjuno
lgica de predicados:
em PROLOG:

((pai(y,x) (mae(y,x)) homem(x)) filho(x,y)


filho(X,Y):- pai(Y,X), homem(X).
filho(X,Y):- mae(Y,X), homem(X).
filho(X,Y):- (pai(Y,X);mae(Y,X)),
homem(X).

d) () - implicao
lgica de predicados:
(genitor(x,y) homem(x)) pai(x,y)
pai(X,Y):- genitor(X,Y), homem(X)
em PROLOG:

4. FORMALIZAO DE PROGRAMAS
A execuo de um programa PROLOG consiste em responder a vrias
consultas.
Para tanto, o interpretador PROLOG aciona a mquina de inferncia e aplica as
regras de deduo para deduzir concluses a partir dos fatos e das regras
declarados. Tem-se que "o mecanismo de inferncia age por trs do pano para
construir uma sequncia de demonstrao" (GERSTING, 2001).
A resposta para uma consulta depende da pergunta feita e da base de fatos e
regras. Pode ser: true (yes), false (no), um ou mais valores.

DOCUMENTOS CONSULTADOS / RECOMENDADOS


1.

BRATKO, I. Prolog programming for artificial intelligence. 2nd ed.


Wokingham: Addison-Wesley, 1990.

2.

CASANOVA, M. A.; GIORNO, F. A. C.; FURTADO, A. L. Programao em


lgica e a linguagem PROLOG. So Paulo: E. Blucher, 1987.

3.

GERSTING, J. L. Fundamentos matemticos para a cincia da


computao. 4.ed. Rio de Janeiro: LTC, 2001.

4.

PRICE, A. M. A.; TOSCANI, S. S. Implementao de linguagens de


programao: compiladores. Porto Alegre: Sagra Luzzatto, 2000.

5.

STERLING, L.; SHAPIRO, E. The art of Prolog: advanced programming


techniques. 2nd ed. Cambridge: MIT, 1994. p. 411-478.

6.

WIELEMAKER, J. SWI Prolog. [S.l.], [2011]. Disponvel em:


<http://www.swi-prolog.org/>. Acesso em: 23 fev. 2013.

Vous aimerez peut-être aussi