Loginis programavimas – tai kompiuterio programavimo rūšis, kai programuotojas turi duoti kompiuteriui nurodymus, kaip priimti sprendimus naudodamas matematinę logiką, pavyzdžiui, naudoti matematinį algoritmą. Kompiuterių programos yra sudarytos iš kodo, nurodančio kompiuteriui, ką daryti. Tačiau galiausiai kompiuteris pateks į atvejį, kai jis turės priimti sprendimą, kaip elgtis, ir neturėdamas informacijos, kaip tai padaryti, jis negalės atlikti dabartinės funkcijos. Loginis programavimas sprendžia tokius sprendimus ir duoda nurodymus kompiuteriui, kad jis galėtų priimti „logišką“ sprendimą, kaip geriausiai reaguoti į tam tikrą situaciją. Kad loginis programavimas veiktų, programuotojas, rašantis kodą, turi įsitikinti, kad jos teiginiai yra prasmingi ir teisingi, todėl yra logiški, o kompiuterinė programa, žinoma kaip teoremų tikrintojas, turi priimti sprendimus, pagrįstus teiginiais, su kuriais susiduria programuotojo. kodas.
Teoremos tikrintojas reiškia kompiuterinę programą, kuri buvo sukurta matematiniams teiginiams, vadinamiems teoremomis, išspręsti. Teoremos yra teiginiai, kurie, remiantis ankstesniais teiginiais, yra teisingi. Loginiame programavime teoremos tikrintojas dirba kartu su kompiuterių programuotojo sukurtais teiginiais, kad padarytų išvadas. Pavyzdžiui, jei kodas teigia, kad A yra lygus B, o B yra lygus C, teoremos tikrintojas padarys logišką išvadą, kad A turi būti lygus C. Šis procesas skiriasi nuo to, kad programuotojas paprasčiausiai pasako kompiuteriui kodą, kad A yra lygus C, nes kompiuterinė programa turi padaryti šią išvadą naudodama teoremos tikrintoją ir programuotojo originalius teiginius kode.
Teoriškai, kad loginis programavimas veiktų, programuotojui tereikia įsitikinti, kad jos teiginiai yra teisingi, o teoremos tikrintojo kūrėjas turėtų užtikrinti, kad programa galėtų skaityti teiginius ir pagal juos priimti efektyviausius sprendimus. Gebėjimas priimti veiksmingą sprendimą vadinamas „logiškai veikiančiu kompiuteriu“. Tiesą sakant, šios dvi darbo sritys sutampa, o tie, kurie atlieka loginį programavimą, dažnai turi keisti ir manipuliuoti kodu pagal tai, kaip veikia teoremos tikrintojas, kad pasiektų norimus rezultatus. Norint, kad kompiuteris atliktų tinkamą funkciją, gali nepakakti vien pateikti tikslių teiginių apie tai, kaip priimti tam tikrą sprendimą, ir programuotojas turės išbandyti savo kodą ir atitinkamai pakoreguoti.
Kad loginis programavimas veiktų, jis taip pat remiasi atgaliniais samprotavimais. Mąstydamas atgal, programa daro išvadas, peržiūrėdama duomenų rinkinį ir remdamasi bendraisiais žinomais teiginiais, kad padarytų sudėtingesnes išvadas. Programa gali žinoti, kad dvi informacijos dalys yra teisingos, ir padarys išvadą, kad kadangi šios dvi informacijos dalys yra tikros, tai reiškia, kad trečia informacija taip pat yra teisinga. Jis tęsia šį procesą, kol, remdamasis pateikta informacija, padaro logišką išvadą. Dėl savo veikimo būdo loginis programavimas yra pagrįstas deklaratyviąja vaizdavimo kalba, tai reiškia, kad programa nurodo kompiuteriui, ką ji turi daryti, tačiau palieka teoremos tikrintojui nustatyti logiškiausią ar efektyviausią būdą atlikti prašomą procedūrą.