You are on page 1of 9

Uso da Lgica no desenvolvimento de

arquiteturas de hardware e software


Aracele Garcia de Oliveira
aracele.garcia@gmail.com
Universidade Federal de Santa Catarina
Florianpolis SC Brasil
Agosto de 2008
1 Resumo
Este trabalho baseia-se em uma pesquisa bibliogrfica que serviu como fundamentao terica
de um estudo sobre a contribuio da programao em lgica para a construo de arquiteturas de
hardware e software, denominadas Mquinas Lgicas ou Mquinas Prolog
1
. A grande vantagem de
utilizao da lgica na representao e transformao do conhecimento a sua forte formalizao
matemtica, o que tambm pode ser melhorado atravs do uso de tcnicas de processamento
paralelo, tanto a nvel de hardware quanto de software, o que uma boa alternativa para obter
performance. Um projeto financiado pelo governo japons entre 1982 e 1992, que iniciou este
pensamento e deu origem aos chamados "Computadores de Quinta Gerao, no atingiu os
objetivos esperados mas serviu para impulsionar o uso do Prolog e outros conceitos associados
lgica. As sees a seguir esto organizadas na ordem cronolgica nas quais os assuntos e
tecnologias ocorreram ou foram desenvolvidos.
2 Paradigma Lgico
A lgica a cincia e Arte do raciocnio [Buchsbaum 2006] e a cincia do pensamento correto
[Palazzo 1997]. necessrio esta premissa inicial para entender como a lgica pode ser empregada
na programao de computadores e como resumir vrias coisas ao seu conceito formal.
O objetivo principal do Paradigma Lgico trazer para a programao o estilo da lgica
matemtica.
2.1 Razes
As razes da lgica podem ser atribudas a Aristteles, que sistematizou e codificou o assunto
de tal modo que no foi significativamente ultrapassado por mais de dois milnios
[Nolt and Rohatyn 1991]. Estudos de Boole(1815-1864) e de De Morgan(1806-1871) remontam o
uso da lgica na representao do raciocnio, mas estavam mais prximos da matemtica do que da
lgica propriamente dita. O relacionamento entre lgica e matemtica foi tambm investigado por
Alfred North Whitehead e Georg Cantor, que tambm produziu a teoria dos nmeros transfinitos e
que em "Principia Mathematica (1910) demonstrou ser a lgica um instrumento adequado para a
representao formal de grande parte da matemtica. A lgica moderna provm, em grande parte,
do trabalho do filsofo alemo Gottlob Fregue no sculo XIX, com o que hoje denomina-se clculo
dos predicados.
Embora a lgica se desenvolvesse como um ramo da filosofia, o seu progresso explosivo
desde Fregue, produziu aplicaes em lingustica, matemtica e cincia da computao. Diversos
estudos posteriores foram de grande importncia para sua evoluo, com destaque para as
investigaes de Herbrand, Gdel, Tarski, Prawitz, Robinson, Green, Turing e Church.
No incio da segunda guerra mundial, por volta de 1939, toda a fundamentao terica bsica
da lgica computacional estava pronta. Mas faltava o meio prtico para se realizar os procedimentos
de prova. E a partir da metade dos anos 50, o desenvolvimento dos computadores conseguiu
oferecer aos pesquisadores o potencial computacional necessrio para a realizao de experincias
mais significativas com o clculo de predicados [Palazzo 1997].
2.2 Programao em Lgica
Esta expresso, originria de "Logic programming em ingls, devida a Robert Kowalski
(1974) e sugere o uso da lgica como linguagem de programao em computadores. Ele identificou
que a prova de teoremas poderia ser computada, permitindo assim uma interpretao procedimental
da lgica e estabelecendo as condies que nos permitissem entend-la como linguagem de
Programao de uso geral.
Neste paradigma, no se descreve o algoritmo para chegar ao resultado. Descreve-se a
informao base (fatos) e as regras de inferncia(regras) sobre certo domnio, para se poder deduzir
1
O Termo Parallel Prolog Machine tambm foi utilizado para designar o paralelismo nestas mquinas.
o resultado atravs de perguntas que so feitas esta base. Um procedimento de inferncia a
estratgia para a escolha das derivaes possveis em cada estado.
O principal interesse nesse modelo de programao estava na sua capacidade de tratar
problemas de alta complexidade computacional e na simplicidade da sua estrutura e principalmente
ao rigoroso suporte matemtico ao qual a lgica est associada.
2.! Programao em Lgica " #rquitetura de $on %ewmann
Programao em lgica uma teoria que representa um modelo abstrato de computao sem
relao direta com o modelo de mquina Von Neumann [Valente 1993].
O paradigma da programao em lgica abandona totalmente o conceito de Von Neumann
por no fornecer instrues explcitas para operaes e seu seqenciamento, adotando o modelo dos
axiomas lgicos, isto , proposies verdadeiras que representam o conhecimento que se possui a
respeito do problema e regras que permitem deduzir novos conhecimentos. A programao lgica
diferencia-se da programao procedimental, fundamentalmente, por requerer a descrio da
estrutura lgica do problema ao invs da maneira pela qual o computador deve solucion-lo
[Price and Lisba 2003].
2.& Prolog
O primeiro interpretador experimental foi desenvolvido por um grupo de pesquisadores na
Universidade de Aix-Marseille(1972) com o nome de Prolog (acrnimo para Programming in Logic).
Implementaes mais prticas foram desenvolvidas por David H.D. Warren e outros, na
Universidade de Edimburgo (U.K), que definiram o chamado "Prolog de Edimburgo, utilizado como
referncia na maioria das implementaes atuais da linguagem Prolog [Palazzo 1997]. Warren
tambm especificou a chamada "Warren Abstract Machine, um modelo formal utilizado na pesquisa
de arquiteturas computacionais baseadas ou orientadas programao em Lgica.
Foi uma tentativa de fazer uma linguagem de programao que permitisse a expresso de
lgica de um programa ao invs de cuidadosamente especificar cada instruo que o computador
deveria executar.
Algumas das principais caractersticas do Prolog so descritas abaixo:
Orientada ao processamento Simblico
Representa uma implementao da Lgica como Linguagem de Programao
Permite a obteno de respostas alternativas
Representa programas e dados atravs do mesmo formalismo
A caracterstica que d ao Prolog vantagens sobre linguagens procedurais
2
a separao
entre componentes lgicos e de controle.
As caractersticas herdadas da Lgica o levou a tornar-se uma das duas principais linguagens
na rea de Inteligencia Artificial, juntamente com o LISP(LISt Processor).
Segue abaixo um quadro comparativo entre caractersticas de Programas Convencionais e de
Programas em Lgica:
PR'(R#)#* +'%$,%+-'%#-* PR'(R#)#* +'%$,%+-'%#-*
Processamento Numrico Processamento Simblico
Solues Algortmicas Solues Heursticas
Estruturas de Controle e Conhecimento Integradas Estruturas de Controle e Conhecimento
Separadas
Difcil Modificao Fcil Modificao
Somente Respostas Totalmente Corretas Incluem Respostas Parcialmente Corretas
Somente a Melhor Soluo Possvel Incluem Todas as Solues Possveis
.a/ela 10 Programas +onvencionais " Programas em Lgica
2.4.1 Conceitos essenciais da Linguagem Prolog
Em Prolog, o que se define so objetos e relaes entre objetos. Para se referir a objetos
usamos "termos.
Termos: constante, varivel ou estrutura;
tomos: Valores simblicos;
Varivel: Inicia-se com uma letra maiscula;
Estrutura: meio de especificar fatos em Prolog.
2
Linguagem de programao na qual o elemento bsico a procedure (uma seqncia de instrues - rotina, sub-rotina ou
funo - associadas a um nome prprio). As linguagens de alto nvel (C, Pascal, Basic, Fortran, Cobol, Ada) so todas
linguagens procedurais.
Um programa Prolog consiste basicamente de:
declarao de fatos sobre objetos e suas relaes;
definies de regras sobre os objetos e suas relaes;
questes que so feitas sobre os objetos e suas relaes.
Fatos so estruturas usadas para construir o banco de dados de informaes presumidas. Eles
so descritos na forma de Horn
3
sem "cabea. Exemplo:
homem(Joo).
Regras so clusulas Horn com "cabea usadas para descrever condies similares a
if-them. Exemplo:
pais(Maria, Joo):- me(Maria, Joo).
Metas so clusulas de Horn sem "cabea que so avaliadas pelo sistema de inferncia do
Prolog. Cada meta decomposta em submetas. O processo de inferncia tenta encontrar o
encadeamento de regras e fatos que ligam a meta a um ou mais fatos do Banco de Dados
? pais (X, Joo).
X=Maria
Yes
2.4.2 A explorao do Paralelismo no Prolog
A busca de regras realizada atravs de uma rvore de pesquisa, e feita, primeiro, em
profundidade, implementada por uma mquina de pilha, onde se guardam os objetivos da
resolvente.
A execuo de Regras assim descrita: o sistema executa todos os sub-objetivos ou
submetas sequencialmente da esquerda para a direita e considera clusulas candidatas
sequencialmente na ordem textual definida no programa, para uma definio precisa da semntica
sequencial do Prolog [Beer 1987].
Uma vez que a semntica declarativa do Prolog no impe qualquer ordem de execuo para
as metas ou ordem de pesquisa das clausulas, imediatamente bvio que programas lgicos
podem fazer uso de um inerente paralelismo.
O Processamento paralelo uma alternativa muito importante para se obter bons resultados
no desempenho de programas. O Paralelismo pode ser explorado implcita ou explicitamente. Os
mais conhecidos sistemas paralelos so baseados na programao imperativa e o paralelismo
explorado explicitamente, tornando a programao uma tarefa difcil. Contrastando com o
programao imperativa, est a programao declarativa de alto-nvel, um modelo onde o
programador s se preocupa com o que deve resolver, e no com a forma de resolver um problema.
Devido a esta caracterstica declarativa, a lgica de programao oferece algumas oportunidades
para explorar o paralelismo implcito. Este claramente reduz o custo do desenvolvimento de
software, como o usurio escreve s uma aplicao que ir executar em apenas um processador,
assim como em vrios[Dutra et al. 1999].
Parcialmente iniciado pelo FGCS, a ser descrito na seo 4, esforos foram considerveis para
definir uma investigao do paralelismo no Prolog e seus dialetos e mquinas paralelas adequadas
para execuo paralela de grandes projetos Prolog.
As principais formas de paralelismo, a nvel de software, que podem ser identificadas so:
Paralelismo-OR: percorre em paralelo ou simultaneamente, todos os ramos da rvore
de pesquisa capazes de resolver um objetivo ou meta corrente.
Paralelismo-AND: a execuo paralela de todos os sub-objetivos ou submetas no
mbito do corpo da clusula.
Paralelismo-Unificao: a unificao concomitante de todos os argumentos de um
dado objetivo e a clusula original
Implementaes iniciais neste sentido foram: Concurrent Prolog, GHC (Guarded Horn
Clauses), Parlog e Andorra.
! # )1quina #/strata de 2arren 32#)4
Como foi dito na seo 2.4, David Warren especificou a chamada "Warren Abstract Machine,
que consistia de uma arquitetura de memria e conjunto de instrues adaptados ao Prolog. A WAM
foi apresentada por ele em uma memorvel palestra em U.C. Berkeley em Outubro de 1983. Seria
uma mquina abstrata prolog, conhecida como Mquina Abstrada de Warren, e este modelo se
tornaria um padro para a implementao de compiladores e interpretadores prolog [Hassan 1990].
A execuo de um programa Prolog feito em duas etapas, em uma implementao baseada
na WAM: [Hanus 1988]
Compilao do Programa em uma sequncia de instrues WAM
3
Um programa lgico uma coleo de clusulas de Horn do tipo A0 if A1 and ... and An
Execuo do programa WAM por um interpretador ou compilao para uma outra
linguagem, por exemplo, linguagem de mquina.
Os principais objetivos do autor quando criou a WAM foram a forma fcil de mapear cdigo
Prolog para cdigo WAM e a arquitetura ser baixo-nvel suficiente para poder ser
implementada/emulada sobre outras arquiteturas.
Alguns nomes de instrues eram put, get, unify, variable, value, execute, proceed, try,
retry, and trust.
WAM era simples por fora (um pequeno e limpo conjunto de instrues) e complexa por
dentro (suas instrues faziam coisas complexas)
Objetos de Dados: Em WAM um objeto Prolog representado por uma palavra
contendo uma tag e um valor. A Tag distingue o tipo do objeto. Os principais tipos so
variveis no-ligadas(unbound), variveis referenciadas, constantes, estruturas e
listas.
reas de Memria: A WAM contm cinco reas de memrias divididas entre o cdigo e
o espao de dados. O espao de cdigo contm instrues e outras informaes
representando o programa. As quatro reas de espao de dados so acessadas como
pilhas.
O processo de inferncia em Prolog inicia com uma consulta, essa consulta particionada em
suas submetas e ento o fluxo de execuo tenta encontrar o encadeamento de regras e/ou fatos
que ligam a meta aos fatos na base de conhecimentos. Essa forma de resoluo capaz de resolver
problemas em domnios finitos. Na figura 1 possvel ver a organizao de memria da WAM que
composta por reas de dados lgicos:
heap onde so alocadas as estruturas complexas em Prolog (listas e termos compostos)
Pilha local que armazena o environment (semelhante a um registro de ativao em uma
mquina von-Neumann) e as variveis locais, a clusula objeto de resoluo.
Pilha de pontos de escolha (ou choicepoint-stack) guarda as informaes para realizar o
backtracking.
Pilha de rastro (trail-stack) guarda as informaes necessrias para desfazer as alteraes
nos dados em caso de backtracking.
Alm disto essa mquina tem alguns registradores globais definidos para o controle das
pilhas e da execuo.
A execuo realizada da seguinte forma: Argumentos da chamada so preparados e
carregados nos registradores temporrios atravs da instruo input. Clusulas que "casam com a
submeta so detectados e se existe mais de um, ento um ponto de escolha alocado (try). A
primeira clusula iniciada depois de criar o "ambiente (allocate), a execuo tenta a "unificao
de cabea usando as instrues get/unify. E ento o corpo da clusula executado. Caso falhe a
unificao, ser necessrio backtraking, que envolve retorno a um ponto de escolha superior e
escolha de uma nova instanciao e execuo da submeta.
5igura 1 0 'rganizao da )emria em
2#)6 )emria e registradores
O sistema completo mostrado na figura a seguir, quando "pass1 a implementao do
compilador Prolog e o "pass2 a traduz toda instruo Wam para uma sequencia de instrues de
Mquina. Neste caso a especificao baseada no implementao WAM 68000 [Hanus 1988].
5igura 2 0 ,squema de funcionamento do )odelo 2#)
& ' 7ro8eto de com7utadores de 9uinta (erao
&.1 ' momento
Ao longo de vrias geraes, desde a dcada de 80, o Japo era um seguidor dos EUA e dos
pases britnicos no que se refere aos termos de avano da informtica e construo de
computadores. Foi ento que o Ministrio de Comrcio Internacional e Indstria (MITI) decidiu a
tentativa de quebrar esta situao de "siga o lder. Em meados de 1970 comeou a estudar, em
pequena escala, o futuro da computao. Eles pediram ao Centro de Processamento e
Desenvolvimento de Informaes do Japo (JIPDEC) para indicar rumos futuros para serem
aprofundados, juntamente com a indstria e a universidade. Foi durante este perodo que o termo
"Quinta gerao de computadores comeou a ser utilizado.
Os campos primrios da investigao eram:
Tecnologias de Inferncia de computador para processamento do Conhecimento
Tecnologias de computador para processamento de bases de dados e conhecimento em larga
escala.
Estaes de alta performance
Super-computadores para clculo cientfico
&.2 ' 7ro8eto
Na evoluo do computador, as mudanas entre uma gerao e outra, aconteceram atravs
do aperfeioamento e desenvolvimento dos elementos que o compem. A primeira gerao usava
vlvulas, a segunda usou transistores, a caracterstica principal da terceira foram os circuitos
intergrados, chamados de "chips, e a quarta gerao possui chips de densidade de integrao
maior, os VLSI, ou Very Large Scale Integration.
Em 1979 o governo japons iniciou estudos para o "Projeto da Quinta Gerao" para
desenvolver, hardware e software de elevado desempenho (caracterizando assim uma nova gerao
de computadores) e usando variantes do Prolog e o prprio Prolog como linguagem bsica do projeto
(assim como o Assembly para as mquinas convencionais) comandando diretamente o hardware. O
motivo do uso do prolog porque se acreditava ser uma verdadeira linguagem paralelizvel. Esse
projeto, iniciou em 1982 e foi oficialmente concludo em 1992.
O FGCS(Fifth Generation Computer Systems) abrangiu o maior projeto de arquitetura dentro
da comunidade de programao em lgica. O objetivo maior do projeto, que era o de produzir e
disponibilizar microcomputadores pessoais baseados nestas novas tecnologias desenvolvidas, no foi
atingido. Mas os computadores, sistema operacional e os programas produzidos pelo projeto so
interessantes e importantes para o nvel acadmico. Diversos prottipos do computador de quinta
gerao foram construdos e chamados genericamente de PIMs Parallel Inference Machines e isso
serviu para difundir e estimular o uso do Prolog.
A idia principal desse projeto, que foi considerado um dos mais ambiciosos projetos da
histria da computao, era construir uma mquina paralela utilizando programao lgica e tcnicas
de Inteligncia Artificial [Rosa 1995].
&.! Linha de .em7o do Pro8eto
1:;2 O FGCS inicia e recebe financiamento para 5 anos.
1:;<
conhecido o primeiro Hardware denominado como Mquina Pessoal de Inferncia
Sequencial PSI (Personal Sequential Inference Machine) e a primeira verso do
Sistema Operacional para a mesma, o SIMPOS. Ele foi programado em Kernel Language
0 (KL0-Kernel Language Zero), uma variante do prolog com extenses orientadas a
objeto.
1:;=
Um prottipo do verdadeiro hardware paralelo chamado Mquina de Inferncia Paralela
ou Parallel Inference Machine (PIM) construdo utilizando vrios PSIs conectados
como uma rede. O projeto recebe financiamento para mais 5 anos. Uma nova verso da
Linguagem do Kernel, o Kernel Language 1(KL1-Kernel Language 1), criado,
influenciado pela evoluo do prolog. O sistema operacional escrito em KL1 recebe um
novo nome: Parallel Inference Machine Operating System ou PIMOS.
1::1 produzida a primeira mquina de inferncia Paralela-PIM que funciona realmente.
1::2
O programa FCGS cancelado ou finalizado.O cdigo-fonte do PIMOS tornado domnio
pblico, mas podendo ser executado somente em Maquinas PIM. Um financiamento
adicional dado para produzir um emulador de UNIX chamado KL1 compilador C (KLIC).
&.& )1quina de -nfer>ncia Paralela 3P-)4
Parte das atividades do projeto de quinta gerao foi desenvolver prottipos de mquinas
paralelas para servir como uma ferramenta de desenvolvimento dos sistemas dos computadores de
quinta gerao[Galante 2004]. Cinco mquinas de inferncia paralela foram criadas: PIM/m, PIM/p,
PIM/i, PIM/k, PIM/c.
Nestas novas mquinas o papel da linguagem assembly ser desempenhado por um dialeto
do Prolog orientado ao processamento paralelo. O KL1 foi um deles. Uma PIM uma mquina MIMD
4
de propsito geral que executava o KL1 eficientemente.
Tais mquinas possuiam arquitetura massivamente paralela e tinham velocidade de
processamento calculada em MLIPS (milhes de inferncias lgicas por segundo). A medida MLIPS
anloga quela usada para os processadores tradicionais (MIPS Milhes de instrues por
segundo)
As principais caractersticas foram:
Computador paralelo
Bases de Dados em lugar de sistemas de arquivo
Linguagem de Programao lgica para acessar bases de dados
Teria entre 100MLIPS(100 megalips) e 1GLIPS (1 gigalips ou 1 bilho de inferncias
lgicas por segundo)
As realizaes do projeto incluem uma hierarquia de linguagens de programao lgica, o
desenvolvimento de programao lgica para sistemas operacionais, e o desenvolvimento de uma
famlia de mquinas de programao em lgica. Tambem serviu para incentivar projetos similares
nos Estados Unidos e a criao do interesse em programao lgica ao redor do mundo.
De um modo geral, entretanto, considera-se que o projeto demonstrou ser a tecnologia PIM
bem sucedida em novas aplicaes envolvendo paralelismo em diversas reas, especialmente
computao no-numrica e inteligncia artificial.
5igura ! ? Uma modelo de Rede Paralela0P-) de 1@A1@ elementos de 7rocessador 3P,4 interligados
Esta foi a primeira mquina de inferncia prtica. Seu sistema operacional PIMOS provia um
ambiente altamente sofisticado para a programao paralela. A terceira mquina PIM/m possuia o
4
MIMD (Multiple Instruction Multiple Data) so arquiteturas caracterizadas pela execuo simultnea de mltiplos fluxos de
instrues. Essa capacidade deve-se ao fato de que so construdas a partir de vrios processadores operando de forma
cooperativa ou concorrente, na execuo de um ou vrios aplicativos.
aumento de performance como grande diferencial, devido ao aumento de elementos de processador
para 256.
A PIM consistia de 8 partes, cada uma com 32 elementos de processador e com quatro discos
de 670MB de armazenamento secundrio. O que consistia em um total aproximado de 20 GB. Cada
disco ligado com os elementos de processador e os FEP atravs de 32 portas SCSI. O FEP uma
estao de trabalho IA que provm ambiente de programao para usurios PIM/m. Em cada
elemento de processador existem 3 chips VLSI, Unidade de Cache, Unidade de controle de rede e
unidade de processamento:[Soler 2006]
5igura & 0 ,lementos de Processador
A unidade de cache contm 1K-Word de instrues e 4K-word de cache de dados. O buffer de
translao e endereamento para instrues e dados tambm instalado na unidade de cache. A
troca de mensagens entre unidades de processador feita atravs de uma tabela RAM chamada de
Path Table(PT). A unidade de rede transmite um pacotes de dados independendo da localizao
fsica do Elemento de Processador adjacente. Este mecanismo utiliza o mecanismo de comunicao
assncrona usando FIFO buffers de sada.
Ainda segundo [Soler 2006], os principais registradores da unidade de processamento so:
PC (program counter), AP (Alternate clause pointer), HP (Heap pointer), An/Xn so implementados
como registrador de arquivo. Cada registrador tem o tamanho de 40 bits, incluindo 8 bits para
representao de tipo de dados e garbage collection. Na implementao KL1 da PIM/m, foi tomado
cuidado com o mecanismo de garbage collection, para isso um garbage collection incremental
usando Multiple Reference Bit(MRB) foi introduzido.
&.< Linguagem 7ara o *istema '7eracional P-)'*
Baseados no Parlog e no Concurrent Prolog, uma equipe de pesquisadores desenvolveu a
linguagem GHC(Guarden Horn Clauses), que originou a KL0(Kernel Language Zero). Um refinamento
desta, produziu em 1987 a linguagem KL1 [Palazzo 1997].
A linguagem denominada KL1 foi utilizada para desenvolver o sistema operacional PIMOS
(Parallel Inference Machine Operating System) em 1988. Ela uma linguagem de alto nvel mas, ao
mesmo tempo, uma linguagem de mquina, isto significa ser adequada programao a nvel de
registradores, posies de memria e portas lgicas
Outras linguagens de programao em lgica foram e ainda so pesquisadas, por exemplo a
linguagem de programao em lgica com restries denominada GDCC. Uma outra, denominada
"Quixote" foi produzida para lidar com bases de dados dedutivas e orientadas a objetos. Para o
gerenciamento de sistemas paralelos distribudos foi especificada a linguagem Kappa-P
5
.
5
Knowledge Application-Oriented Advanced Database Management como um sistema paralelo gerenciador de banco de
dados para execuo em Mquinas PIM.
4.5.1 A linguagem paralela Kernel Language 1 KL1
A linguagem KL1 possui as seguintes caractersticas:
Shoen
6
: representa um grupo de objetivos. O grupo utilizado como unidades de controle de
execuo, nomeados como inicializao, interrupo, recomeo e aborto de execuo.
Prioridade: um objetivo de um programa KL1 uma unidade de controle prioritrio. Cada
objetivo tem uma prioridade de valor inteiro associado a mesma. Cada Shoen mantm o mximo
e o mnimo de prioridades permitidas para os objetivos descritos acima. A linguagem permite um
grande nmero de nveis prioritrios lgicos, os quais so traduzidos para prioridades disponveis
fisicamente, para cada implementao.
Especificao de Processador: cada objetivo pode ter uma especificao de processador, a qual
designa o nmero de processadores para executar o objetivo. Sem isto, um objetivo
executado no mesmo processador como um objetivo pai.
A mquina de inferncia paralela experimental tinha 64 processadores PSI-II conectados em
grid, alcanando o pico de desempenho de cerca de 10 MRPS
7
em listas de concatenao.
O sistema operacional PIMOS para Multi-PSI e PIM foi o primeiro desenvolvido utilizando uma
implementao KL1.
4.5.2 O sistema Operacional PIMOS
Estruturas baseadas em conhecimento tm como caracterstica a existncia de uma base de
conhecimento, a partir da qual se prope a criao de um suporte mais inteligente para as
aplicaes e de melhores ambientes para o usurio. A idia de sistemas operacionais baseados em
conhecimento no nova. Segundo [Li et al. 1995] eles eram chamados de Sistemas Operacionais
Inteligentes e Sistemas Operacionais Baseados em Conhecimento. O sistema operacional PIMOS
propunha uma mquina de inferncia paralela no sentido de implementar mecanismos de
gerenciamento inteligente de sistemas distribudos.
&.@ Resultados do Pro8eto
Cinco execues de Mquinas de Inferncia Paralela PIM (parallel inference machines)
foram eventualmente desenvolvidas: PIM/m , PIM/p , PIM/i, PIM/k , PIM/c.
O projeto tambm produziu aplicaes para executar nestas mquinas, tais como o Sistema
de Gerenciamento de Banco de Dados Kappa, o sistema de raciocnio HELIC-II e o provador de
teoremas chamado MGTP.
< +oncluso
Inicialmente acreditava-se que o formalismo matemtico poderia ser a soluo para o
desenvolvimento de mquinas potentes. A mquina abstrata de Warren estimulou os estudos para o
desenvolvimento de compiladores prolog que poderiam ser testados em uma mquina lgica
abstrata que simulava um hardware construdo para melhor se adaptar a realidade da programao
em lgica.
Utilizar a lgica no desenvolvimento de hardware e software era o principal objetivo das
pesquisas do Projeto de computadores de quinta gerao iniciado no Japo e que durou
aproximadamente uma dcada. O projeto no atingiu seus objetivos iniciais, que era comercializar
potentes "mquinas lgicas ou "mquinas prolog. Este potencial seria obtido atravs do
paralelismo que foi aplicado a nvel de software utilizando recursos paralelos do prolog e tambm a
nvel de hardware atravs da criao de redes que executavam em paralelo mas que eram formados
por elementos de processador que executavam sequencialmente.
Mas, apesar disso, vrias idias seguintes as que foram lanadas neste projeto hoje so
realidade, por exemplo a programao lgica distribuda sobre bases de dados usado em OWL
8

Web Ontology Language e a Computao Paralela
9
. Alm dos vrios estudos multidisciplinares:
Lgica Jurdica, Linguagem natural, Lgicas Paraconsistentes, redes neurais artificiais
paraconsistentes, Lgica aplicada Engenharia de Software, dentre outros.
6
Shoen a palavra Japonese correspondente a "manor em Ingls.
7
MRPS significa Mega redues por segundo o que corresponde a aproximadamente ao MPLIS (mega inferencias lgicas por
segundo) do Prolog
8
OWL uma linguagem para definir e instanciar ontologias na Web. uma tecnologia importante para a futura
implementao da Web Semntica. Lgica descritiva e lgica menos expressiva so as mais utilizadas.
9


Computao paralela caracterizada pelo uso de vrias unidades de processamento ou processadores para executar uma
computao de forma mais rpida.
@ Bi/liografia
Beer, J. (1987). Concepts, Design and Performance Analysis of a Parallel Prolog Machine, Ph.D.
Thesis, Tech. Uni. of Berlin, W. Germany.
Buchsbaum, A. (2006). Lgica Geral. Disponvel em
http://wwww.inf.ufsc.br/~athur/index.php?page=material_didatico&lang=pt. Acesso em
10/07/2008
Dutra, I.C., Geyer C.F.R., Vargas,P.K.(1999). Parallelism in Logic Programming, Intl. School on
Advanced Techniques for Parallel Computation with Applications, Natal, RN, Brasil, Sep, 35 pages.
Galante,G. (2004). Programao em Lgica: Prolog. Programa de Ps-Graduao em Computao.
UFRGS, Porto Alegre.
Hanus, M. (1988). Formal Specification of a Prolog Compiler. In Proc.Int.Workshop on Programming
Language Implementation and Logic Programming, Orlans, May. Springer LNCS 348, pp.273-282
Hassan At-Kaci. (1990). "Warren's Abstract Machine -- A Tutorial Reconstruction", MIT Press,
Cambridge, Mass.
Beer, J., Giloi, W.K. (1987). POPE - a parallel-operating prolog engine. In Future Generation
Computer Systems. Volume 3, Issue 2, May, Pages 83-92.
Kowalski, R. (1973). Predicate Logic as a Programming Language Memo 70, Department of Artificial
Intelligence, Edinburgh University.
LI,X., Xing, D., Jun, C., Yuhua, Z., Zhongxus, S. (1995). An Introduction to Intelligent Operating
System KZ2. ACM Operating Systems Review, Vol.29 no.1.
Nolt, J., Rohatyn, D. (1991). Lgica. McGraw & Makron Books. So Paulo
Palazzo, L.A.M. (1997). Introduo a programao prolog. EDUCAR Editora da Universidade Catlica
de Pelotas. Pelotas-RS.
Price, A.M., Lisba, M.L. (2003). Linguagens de programao em Lgica. Notas de Aula. Disponvel
em http://allanedgard.sites.uol.com.br/MAT052/LOGICAN.pdf
Rosa, J. L. G. (1995). A Quinta Gerao, aderno de Informtica, !ornal "irio do Po#o, Campinas,
SP, 25/05.
Schultz,M.R.O.(2003). Metodologias para o ensino de lgica de programao de computadores.
Dissertao apresentada Universidade Federal de Santa Catarina, Novembro. Acesso em 11 de
Agosto de 2008.
Silva, A.C.S., Silveira, C. Prolog. Disponvel em
http://anacarol.blog.br/old/aulas/artigos_uteis/prolog.pdf
Soler,L. (2006). Arquitetura PIM/m. Instituto de informtica, Universidade Federal do Rio Grande do
Sul-UFRGS, Rio Grande do Sul. Disponvel em
http://www.inf.ufrgs.br/procpar/disc/cmp135/trabs/soler/pim.pdf. Acesso em 21 de Agosto de 2008.
Ueda,K. Chikayama, T. (1990). Design of the Kernel Language for the Parallel Inference Machine.
The Computer Journal, Vol.33, No.6(Dec), pp. 494-500)
Vargas, Patrcia Kayser. (1997). Explorao de Paralelismo OU em uma Linguagem em Lgica com
Restries. In: SEMANA ACADMICA DO CPGC, Porto Alegre, RS. Anais. Porto Alegre:
CPGCC/UFRGS. p.31-34
Valente, J.A.(1993). Computadores e Conhecimento: Repensando a educao. UNICAMP, SP: Ed.
NIED.

You might also like