Esistono connessioni estremamente profonde e pervasive tra la logica e l'informatica. Nel comprendere ciò che potrebbero essere, tenere presente che l'informatica è anche chiamata "tecnologia dell'informazione" o "informatica", il che significa che i sistemi informatici acquisiscono, elaborano e forniscono informazioni. Bene, la logica è una cosa simile. Studia come le informazioni vengono catturate in frasi e come è possibile che un'affermazione sia una conseguenza di un'altra, cioè come il suo contenuto informativo sia già presente in un'altra affermazione (o raccolta di affermazioni). In tal senso, la logica e l'informatica sono essenzialmente le stessedisciplina, concentrandosi su diversi aspetti. I logici (Church, Kleene, Turing, Post e i loro studenti e colleghi) hanno creato la disciplina dell'informatica e molti logici continuano a dare contributi all'informatica, in particolare Jean-Yves Girard e i suoi studenti.
Ecco alcune applicazioni standard di logica in Informatica:
La progettazione di circuiti digitali si basa interamente sulla logica della proposta, al punto che i suoi ingegneri la chiamano "progettazione logica" piuttosto che "progettazione di circuiti". Anche scrivere un programma per computer spesso si pensa che abbia ideato la sua "logica". (Si noti che la "logica" in quest'ultimo senso è un'idea informale piuttosto che una logica formale, utilizzata per fare riferimento al flusso di informazioni attraverso il programma e se è stato elaborato correttamente.)
La logica predicata e il suo cugino matematico, la teoria degli insiemi, sono utilizzati in una varietà di linguaggi informatici , ad esempio il linguaggio SQL per le query di database relazionali. Esistono anche linguaggi di programmazione basati sulla logica, chiamati "linguaggi di programmazione logica".
La rappresentazione della conoscenza , che hai già menzionato, ha molti formalismi basati sulla logica. Anche se utilizza formalismi non logici, molti di essi hanno ancora un significato logico e quindi sono basati sulla logica.
La logica probabilistica, in cui le affermazioni non hanno solo valori veri / falsi, ma livelli di certezza / incertezza, è sempre più la base per i sistemi di apprendimento automatico .
Se vuoi dichiarare formalmente cosa fa un programma, cioè dare una specifica del programma , finirai per usare una forma di un linguaggio logico. In effetti, ci sono molti linguaggi di specifica del programma, come Z e B, che si basano sulla logica predicata e sulla teoria degli insiemi. Esistono anche linguaggi di specifica basati sulla logica equazionale, come Larch. Gli informatici spesso inventano nuove logiche per rappresentare le esigenze dell'informatica, ad esempio Hoare Logic e Separation Logic, oppure raccolgono e sviluppano varie forme sottoutilizzate di logiche tradizionali, come la logica temporale e la logica modale, e le sviluppano ulteriormente.
Se vuoi verificare se un programma fa quello che dovrebbe fare, finisci per usare non solo il linguaggio della logica, ma l'intero meccanismo della logica: teoria delle prove, teoria dei modelli e procedure decisionali. La tecnologia di verifica sta ora crescendo a passi da gigante e mi aspetto che, in un altro decennio o giù di lì, vengano usati abitualmente per quasi tutto lo sviluppo del software.
In effetti, le connessioni tra la logica e l'informatica sono così profonde e pervasive che direi che è difficile essere un buon informatico senza una conoscenza approfondita della logica.
La ragione per cui alcuni scienziati dell'IA hanno sottovalutato la logica in questo momento è che alcuni dei primi sviluppatori dell'IA avevano proposto la logica standard come strumentopiuttosto che una fondazione. L'IA, per sua stessa natura, promette di offrire magia. Non dobbiamo fare il duro lavoro dei sistemi di programmazione per fornire risultati. Sarebbero in grado di capire da soli come produrre soluzioni perché sarebbero "intelligenti". La logica sembrava indicare la strada perché se i sistemi informatici comprendessero la logica e sapessero elaborare le informazioni usando le regole della logica, sarebbero in grado di fornire magia. Quel tipo di fede nella logica era, a posteriori, fuori luogo. In primo luogo, la logica standard è troppo forte e allo stesso tempo troppo debole. È troppo forte nel senso che le regole della logica sono troppo generali per escogitare procedure efficaci. È anche troppo debole perché è la logica ideata dai matematici per le esigenze della matematica e non lo fa Hanno il vocabolario necessario per gestire molti altri tipi di informazioni del mondo reale che i sistemi di intelligenza artificiale devono gestire (come incertezza, informazioni contestuali come tempo, cambiamento, conoscenza, agenzia e così via). Quindi, l'IA sta attualmente subendo un contraccolpo contro la logica. Ma penso che, quando supereranno quel contraccolpo, gli scienziati dell'IA realizzeranno che tutti i metodi più recenti sono ancora basatilogica, ampiamente interpretata .