Istnieją niezwykle głębokie i wszechobecne powiązania między logiką a informatyką. Rozumiejąc, czym mogą być, pamiętaj, że informatyka jest również nazywana „technologią informatyczną” lub „informatyką”, co oznacza, że systemy komputerowe przechwytują, przetwarzają i dostarczają informacje. Cóż, logika jest podobna. Bada, w jaki sposób informacje są przechwytywane w zdaniach i jak możliwe jest, aby jedno oświadczenie było konsekwencją drugiego, tj. W jaki sposób jego treść informacyjna jest już obecna w innym oświadczeniu (lub zbiorze oświadczeń). W tym sensie logika i informatyka są zasadniczo takie samedyscyplina, koncentrująca się na różnych aspektach. Logicyści (Church, Kleene, Turing, Post oraz ich studenci i koledzy) stworzyli dyscyplinę informatyki, a wielu logików nadal przyczynia się do informatyki, w szczególności Jean-Yves Girard i jego uczniowie.
Oto niektóre standardowe zastosowania logiki w informatyce:
Projektowanie obwodów cyfrowych jest całkowicie oparte na logice propozycji, do tego stopnia, że inżynierowie nazywają to „projektem logiki”, a nie „projektem obwodu”. Często nawet uważa się, że pisanie programu komputerowego wymaga opracowania jego „logiki”. (Należy zauważyć, że „logika” w tym drugim sensie jest nieformalnym pomysłem, a nie logiką formalną, stosowaną w odniesieniu do przepływu informacji przez program i tego, czy jest przetwarzana poprawnie).
Logika predykatów i jej kuzyn matematyczny, teoria mnogości, są używane w różnych językach obliczeniowych , np. W języku SQL do kwerend relacyjnych baz danych. Istnieją również języki programowania oparte na logice, zwane „logicznymi językami programowania”.
Reprezentacja wiedzy , o której już wspomniałeś, ma wiele formalizmów opartych na logice. Nawet jeśli używa nielogicznych formalizmów, wiele z nich nadal ma logiczne znaczenie , a zatem są oparte na logice.
Logika probabilistyczna, w której stwierdzenia mają nie tylko prawdziwe / fałszywe wartości, ale poziomy pewności / niepewności, jest coraz częściej podstawą systemów uczenia maszynowego .
Jeśli chcesz formalnie stwierdzić, co robi program, tj. Podać specyfikację programu , skończysz na jakimś logicznym języku. Rzeczywiście istnieje wiele języków specyfikacji programów, takich jak Z i B, które są oparte na logice predykatów i teorii mnogości. Istnieją również języki specyfikacji oparte na logice równikowej, takie jak Larch. Informatycy często wynajdują nowe logiki, które odzwierciedlają potrzeby informatyki, np. Logikę Hoare'a i Logikę separacyjną, lub też wychwytują i rozwijają różne niewykorzystane formy tradycyjnych logik, takich jak logika czasowa i logiczna, i rozwijają je dalej.
Jeśli chcesz sprawdzić, czy program robi to, co powinien, to w końcu używasz nie tylko języka logiki, ale całej maszynerii logiki: teorii dowodu, teorii modelu i procedur decyzyjnych. Technologia weryfikacji rozwija się teraz skokowo i spodziewam się, że za około dekadę będą one rutynowo wykorzystywane do prawie całego tworzenia oprogramowania.
W rzeczywistości powiązania między logiką a informatyką są tak głębokie i wszechobecne, że powiedziałbym, że trudno jest być dobrym informatykiem bez dogłębnego zrozumienia logiki.
Powodem, dla którego niektórzy naukowcy zajmujący się sztuczną inteligencją jest niedocenianie logiki w tym czasie, jest fakt, że niektórzy z pierwszych twórców AI zaproponowali gotową logikę jako narzędziezamiast podstawy. AI ze swej natury obiecuje dostarczać magię. Nie musimy wykonywać trudnych zadań związanych z programowaniem systemów, aby dostarczać wyniki. Byliby w stanie sami wymyślić, jak tworzyć rozwiązania, ponieważ byliby „inteligentni”. Logika wydawała się wskazywać drogę, ponieważ gdyby systemy komputerowe rozumiały logikę i wiedziały, jak przetwarzać informacje za pomocą reguł logiki, byłyby w stanie dostarczyć magię. Tego rodzaju wiara w logikę była z perspektywy czasu niewłaściwa. Po pierwsze, gotowa logika jest jednocześnie zbyt silna i zbyt słaba. Jest zbyt silny w tym sensie, że reguły logiki są zbyt ogólne, aby opracować skuteczne procedury. Jest również zbyt słaby, ponieważ jest to logika opracowana przez matematyków na potrzeby matematyki i nie • mają słownictwo potrzebne do radzenia sobie z wieloma innymi rzeczywistymi informacjami, z którymi muszą sobie radzić systemy AI (takie jak niepewność, informacje kontekstowe, takie jak czas, zmiana, wiedza, sprawność itp.). Tak więc AI przechodzi obecnie reakcję logiczną. Ale myślę, że kiedy pokonają ten luz, naukowcy AI zdadzą sobie sprawę, że wszystkie nowsze metody są nadal opartelogika szeroko rozumiana .