Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > O que é cada tecnologia
SEÇÕES
Manuais relacionados
+O que é cada tecnologia
Categorias
+Internet
+Programação

Índice do Manual O que é cada tecnologia
+ O que é HTML
+ O que é DHTML
+ O que é CSS
+ O que é Javascript
+ O que é Visual Basic Script
+ O que é Java
+ O que são os Applets de Java
+ O que é ASP
+ O que é PHP
+ O que é XML
+ O que é VRML
+ O que são as Cookies
+ O que é SQL
+ O que é um webmaster
+ O que é streaming
+ O que é a programação orientada a objetos
+ O que é um firewall
+ O que é CGI
+ O que é Perl
+ O que é C #
+ O que é .NET
+ O que é JSP
+ O que é Oracle
+ O que é ActiveX
+ O que são as extensões de Frontpage
+ O que é Fortran
+ O que é Lisp
+ O que é Prolog

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


O que é Prolog

Estudaremos um caso de linguagem orientada à programação lógica ( cálculo de predicados ): Prolog.


Estudaremos um caso de linguagem orientada à programação lógica ( cálculo de predicados ): Prolog.
  • PROLOG está orientado à resolução de problemas mediante o cálculo de predicados, baseado em:
    • Perguntas à base de dados.
    • Provas matemáticas.
  • O programa PROLOG especifica como deve ser a solução, ao invés de dar o algarismo para sua resolução. A solução se obtém mediante busca aplicando a lógica de predicados.
História

  • Coulmerauer (1970) desenvolveu uma linguagem para fazer deduções de texto.
  • Aplica-se um mecanismo de resolução sobre predicados especiais, cláusulas de Horn, chamado unificação.
  • A difusão da linguagem se produziu nos anos 80, mas de forma muito limitada devido à falta de aplicações em tal linguagem.
Perspectiva da linguagem

  • O programa prolog se compõem de fatos (dados) e um conjunto de regras, ou seja, relações entre objetos da base de dados.
  • A execução do programa carregado em memória consiste em realizar uma pergunta de forma interativa: o intérprete gerará por inferência os resultados que se deduzem a partir do conteúdo da base de dados.
  • PROLOG tem uma sintaxe e semântica simples. Só busca relações entre os objetos criados, as variáveis e as listas, que são suas estruturas básicas.
  • Comentários entre /* */
Objetos de dados

  • Tipos de dados primitivos: variáveis e constantes:
    • Inteiros
    • Reais
    • Caracteres
    Os identificadores com minúscula representam fatos, os que vão com maiúscula variáveis. O alcance de uma variável é a regra onde aparece.
  • Tipos de dados estruturados:
    • Átomos: constantes e variáveis de cadeia.
    • Listas, representadas entre [ ].
  • Tipos definidos pelo usuário. As regras para definir relações podem atuar como tipos de usuário.
Representação de armazenamento

  • As regras e fatos são armazenados na memória como listas enlaçadas.
  • A execução de prolog consiste em uma busca em profundidade de um diagrama contendo todas as possíveis soluções. Para cada uma delas se avaliará sua correção. A busca se pode fazer mais eficiente mediante a poda do diagrama de busca (corte).
Controle de seqüência

A ordem de avaliação é seqüencial.
  • Expressões, operações aritméticas e operadores relacionais. Not().
  • Enunciados
    • Fatos, relações que se expressam em uma consulta com um nome de predicado e uns argumentos.
    • Regras, implicações que se expressam em uma operação consult.
    • Perguntas, sucessão de términos que finalizam com um ponto.
    • Cortes, (!), força o retrocesso na busca. Isto pode impedir que se encontrem certas soluções, mas pode fazer mais eficiente a busca.
  • Entrada e saída, nl e write.
Subprogramas e gestão de armazenamento

  • PROLOG tem dois modos:
    • Modo consulta, introduzem-se novas relações (fatos) no armazenamento dinâmico da base de dados.
    • Modos pergunta, executa-se um intérprete baseado para avaliar as perguntas do usuário.
  • Alcance das variáveis:
    • Ambiente local de referência, todas as variáveis são locais à regra a qual estão definidas. A unificação faz interagir nomes locais de uma regra com os de outras regras.
    • Ambiente comum de referência, todos os dados são compartidos.
    • Passo de parâmetros, a unificação proporciona o passo de parâmetros entre regras.
  • Funções normais, já vão integradas na linguagem:
    • Consult(nomearquivo)
    • Fail, sempre fracassa.
    • See(nomearquivo), lê as entradas de um arquivo e as incorpora ao conjunto de regras.
    • Write(término).
    • Tell(término), re-orienta a saída do write ao arquivo.
    • Told, fecha o arquivo anterior.
    • Nl, quebra de linha.
    • Atom(X), devolve certo se X é um átomo.
    • Var(X), devolve certo se X é uma variável.
    • Integer(X), devolve certo se X é um inteiro.
    • Trace, ativa a depuração do programa.
Abstração e encapsulamento

PROLOG não proporciona estas capacidades.

Avaliação da linguagem

  • PROLOG vai bem para problemas de relações, p.e. Tratamento da linguagem natural, e consulta de bases de dados.
  • Apesar de ser possível desenvolver programas sem especificar o algarismo de resolução, às vezes há que utilizar outro tipo de programação para tornar os programas mais eficientes, e muitas vez se emprega o corte para limitar o espaço de busca.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de O que é cada tecnologia
Anterior: O que é Lisp

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Internet
+ Entrar em Programação


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites