Existem conexões extremamente profundas e difundidas entre lógica e ciência da computação. Para entender o que eles podem ser, lembre-se de que a ciência da computação também é chamada de "tecnologia da informação" ou "informática", o que significa que os sistemas de computador capturam, processam e entregam informações. Bem, a lógica é uma coisa semelhante. Ele estuda como as informações são capturadas em sentenças e como é possível que uma declaração seja uma conseqüência de outra, ou seja, como o conteúdo da informação já está presente em outra declaração (ou coleção de declarações). Nesse sentido, lógica e ciência da computação são essencialmente as mesmasdisciplina, com foco em diferentes aspectos. Os lógicos (Church, Kleene, Turing, Post e seus alunos e colegas) criaram a disciplina de Ciência da Computação, e muitos lógicos continuam a dar contribuições à Ciência da Computação, principalmente Jean-Yves Girard e seus alunos.
Aqui estão algumas aplicações padrão da lógica em Ciência da Computação:
O design de circuitos digitais é inteiramente baseado na lógica da proposta, tanto que seus engenheiros o chamam de "design lógico" em vez de "design de circuito". Mesmo a escrita de um programa de computador costuma envolver a criação de sua "lógica". (Observe que "lógica", no último sentido, é uma ideia informal e não lógica formal, usada para se referir ao fluxo de informações através do programa e se está sendo processado corretamente.)
A lógica predicada e seu primo matemático, a teoria dos conjuntos, são usados em uma variedade de linguagens de computação , por exemplo, a linguagem SQL para consultas de bancos de dados relacionais. Existem também linguagens de programação baseadas na lógica, chamadas "linguagens de programação lógica".
A representação do conhecimento , que você já mencionou, possui muitos formalismos baseados na lógica. Mesmo que use formalismos não lógicos, muitos deles ainda têm um significado lógico e, portanto, são baseados na lógica.
A lógica probabilística, em que as declarações não têm apenas valores verdadeiros / falsos, mas níveis de certeza / incerteza, é cada vez mais a base para sistemas de aprendizado de máquina .
Se você deseja declarar formalmente o que um programa faz, ou seja, fornecendo uma especificação de programa , você acabará usando alguma forma de linguagem lógica. De fato, existem muitas linguagens de especificação de programa, como Z e B, baseadas em lógica de predicados e teoria de conjuntos. Também existem linguagens de especificação baseadas em lógica equacional, como Larch. Os cientistas da computação geralmente inventam novas lógicas para representar as necessidades da ciência da computação, por exemplo, Hoare Logic e Separation Logic, ou desenvolvem várias formas subutilizadas de lógicas tradicionais, como lógica temporal e lógica modal, e as desenvolvem ainda mais.
Se você deseja verificar se um programa faz o que deveria fazer, acaba usando não apenas a linguagem da lógica, mas todo o mecanismo da lógica: teoria da prova, teoria do modelo e procedimentos de decisão. A tecnologia de verificação agora está crescendo aos trancos e barrancos e espero que, em mais uma década, eles sejam usados rotineiramente para quase todo o desenvolvimento de software.
De fato, as conexões entre lógica e ciência da computação são tão profundas e difundidas que eu diria que é difícil ser um bom cientista da computação sem uma compreensão completa da lógica.
A razão pela qual alguns cientistas da IA subestimam a lógica no momento é que alguns dos primeiros desenvolvedores da IA propuseram a lógica pronta para uso como uma ferramentaao invés de uma fundação. A IA, por sua própria natureza, promete entregar mágica. Não precisamos fazer o trabalho duro dos sistemas de programação para obter resultados. Eles seriam capazes de descobrir por si mesmos como produzir soluções porque seriam "inteligentes". A lógica parecia apontar o caminho, porque se os sistemas de computador entendessem a lógica e soubessem processar informações usando as regras da lógica, eles seriam capazes de fornecer mágica. Esse tipo de fé na lógica foi, em retrospecto, perdido. Em primeiro lugar, a lógica de prateleira é muito forte e muito fraca ao mesmo tempo. É forte demais no sentido de que as regras da lógica são gerais demais para conceber procedimentos eficazes. Também é muito fraco, porque é a lógica idealizada pelos matemáticos para as necessidades da matemática e não ter o vocabulário necessário para lidar com muitos outros tipos de informações do mundo real com as quais os sistemas de IA devem lidar (como incerteza, informações contextuais como tempo, mudança, conhecimento, agência e assim por diante). Portanto, a IA está passando por uma reação contrária à lógica. Mas acho que, quando eles superarem essa reação, os cientistas da IA perceberão que todos os métodos mais recentes ainda são baseados emlógica, amplamente interpretada .