Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.1 Complementos<br />
2.1.1 Visão Alternativa<br />
Um sistema formal pode ser comparado a um conjunto de peças de plástico com regras de como<br />
combiná-las (brinquedos do tipo Lego). As peças possuem saliências e depressões para se encaixarem<br />
umas nas outras. Duas peças quaisquer não necessariamente podem ser agrupadas pois<br />
elas podem não se encaixar. As regras do sistema formal estariam subentendidas nas saliências<br />
e depressões nas peças. O alfabeto seriam as próprias peças, cada peça seria um axioma e um<br />
teorema é qualquer agrupamento de peças.<br />
Um sistema formal nada mais é do que um jogo de compor peças segundo regras. E observe<br />
que nestes brinquedos, os símbolos do alfabeto (peças) e os teoremas possuem três dimensões.<br />
Voltaremos a este tópico mais tarde.<br />
2.1.2 Conexões com a Computação<br />
Regras Como Algoritmos<br />
Uma conexão com a computação foi dada na definição de uma “regra” de um sistema formal. Uma<br />
regra deve poder ser transformada em um algoritmo. E o que é exatamente um algoritmo ? É uma<br />
seqüência de instruções que pode ser colocada em um programa escrito em qualquer linguagem de<br />
programação. 2<br />
Como um exemplo, a regra 1 do sistema MIU pode ser codificada em linguagem Java como<br />
String rule1(String formula) {<br />
// verifica se o último caráter da fórmula é I<br />
if ( formula.charAt(formula.length() - 1) == ´I´ )<br />
return formula + "U";<br />
else<br />
return null;<br />
}<br />
Programas Como Sistemas Formais<br />
Podemos encontrar um sistema formal que faz a mesma coisa que um programa qualquer ? Aparementemente<br />
sim, pois afinal um programa é composto de algoritmos e as regras so sistema formal<br />
também. Veremos que a respostas é “sim”. Um programa toma uma entrada, altera-a através de<br />
sucessivas instruções e no final de sua execução produz uma saída. 3 Então um programa qualquer<br />
toma uma seqüência de bits como entrada e produz uma seqüência de bits como saída feita através<br />
2 Rigorosamente, admite-se que o programa possa alocar uma quantidade potencialmente infinita de memória, o<br />
que não é o caso real, já que todos os computadores possuem uma memória finita.<br />
3 Não precisamos considerar os programas interativos que tomam entradas e produzem saídas durante a sua<br />
execução — simplesmente podemos considerar que estes programas começam uma nova execução após uma nova<br />
entrada e terminam a sua execução após uma saída.<br />
10