domingo, 27 de fevereiro de 2011

As primitivas linguísticas como base da lógica

No correr dos tempos, e desde os mais imemoriais (gregos), desenvolveu-se uma serie de formalismos para a lógica, alguns deles com exemplos absurdos, mas exprimindo uma relação lógica:

Todo alimento verde é vejetal, a bala de hortelã é um alimento verde, logo ela é um vejetal.

Este é o perigo do formalismo, este é o erro de restringir o foco das informações apenas para o terreno do que está sendo estudado. A lógica tem que envolver semântica e relacionamento entre conjuntos compatíveis. O erro aqui foi admitir que a bala é um alimento. A categorização foi incompleta. Podemos observar até em livros de matemática tendenciosas simplificações que vão deixar impressões lógicas erradas na cabeça dos alunos.

O estudo da lógica deve ter preocupações linguísticas, pois enunciados de matemática, física, química e matemática (para citar algumas disciplinas) são redigidos em alguma língua. Já tivemos casos de questões de provas de vestibulares e concursos públicos anuladas por apresentarem enunciados ambíguos ou sem sentido.

Friedrich Ludwig Gottlob Frege propôs uma forma em sua Conceitografia para a apresentação de enunciados lógicos. No entanto, em um de seus paradoxos ele se perdeu na busca da separação entre semântica e epistemologia, e vamos, audaciosamente, apontar o porquê de sua falha:


Sem o conhecimento das primitivas linguísticas, é impossível propor as primitivas para um enunciado lógico


Todos os profissionais da Ciências Computacionais conhecem as primitivas propostas para as linguagens de programação mais importantes:


Se ( ...ou...e...) ... então ... senão ...


Em nossos numerosos programas, feitos com base nestas primitivas, desde 1982, portanto quase 30 anos, esta lógica serviu, bem ou mal, e mergulhamos em várias "sinucas de bico", pois ela não atendeu a contento mais de 40 % das situações do mundo real.


Este tipo de abordagem parece, em relação ao campo da física, a diferença entre o determinismo da física newtoniana em relação às várias possibilidades da física quântica.


Surgiu então a linguagem SQL, e as primitivas utilizadas foram reduzidas na primeira abordagem a:


 ... onde ... ( ...ou...e...) ...


Onde continua tendo o valor do se.


Estas formas mostram a pobreza da abordagem do problema da lógica de uma forma fria e programacional. 


Então, o que queremos então ? Estariam todas as linguagens invalidadas pela fria lógica computacional ?


Vamos explicar. Cada ramo do conhecimento tem sua própria lógica. Cada um, portanto, merece uma linguagem própria, e esta deve ser baseada numa linguística que surja do seu contexto.


Um exemplo vai tornar isto claro. Um programa de diagnóstico médico utiliza uma linguagem de contexto se ... então ... senão ... O programa pode até funcionar, após vários nós de programação, até que dê resultados razoáveis e aceitáveis. No entanto, resultados melhores, sem os nós de programação, poderiam ser obtidos a partir da abordagem linguística própria da medicina e de seus ramos.


Quem é profissional da área de computação sabe que é possível fazer um programa dar certo, mesmo utilizando as linguagens padrão do mercado, mas também sabe que a dor de cabeça gerada para se conseguir este resultado é comparável à do elefante gripado.


Conclusão


Cada ramo do conhecimento tem uma lógica que extrapola a lógica formal, e que deve ser observada em seu terreno, utilizando as primitivas deste ramo, para que melhores resultados sejam obtidos. Em outras palavras, já que a programação utiliza uma linguagem de programação, é bom e desejável que ela esteja o mais próxima possível da linguagem do ramo de conhecimento onde será feita a aplicação.



Nenhum comentário:

Postar um comentário