Visai netyčia vienas kolega užvedė ant šios temos*. Jis pats nei neįtaria, kokių man minčių sukėlė, o tos mintys – visai paprastos. Juk kalba – tai mąstymo įrankis ir netgi mūsų proto realizacija**, tiesa? O jei jau taip, tai turime buką bukiausią klausimą: kaip natūrali kalba realizuoja paprastą Būlio algebrą ar išvis elementariausią logiką?
Pernelyg nesigilindami į visus įmanomus operatorius, galim apsiriboti keliais, įsivaizduodami juos, kaip dėželes su vienu ar keliais įėjimais ir vienu išėjimu. Logika paprasta – pro įėjimus pakliūna reikšmės skaičiavimams, o išėjime gauname apskaičiuotą reikšmę. Visada išeina tiktai viena reikšmė – melas arba tiesa. Turint pakankamą rinkinį loginių operacijų, galima realizuoti bet kokį kompiuterį, o gal būt – net ir žmogaus ekvivalentą. Taigi, pagrindinės operacijos yra šios:
- AND, kitaip dar vadinama logine konjunkcija***: jei abu įėjimai yra tiesa, išėjime irgi yra tiesa, jei nors vienas įėjimas melas, išėjime irgi yra melas
- NOT, kitaip dar vadinama logine inversija arba negacija: jei įėjime yra tiesa, išėjime yra melas, o jei įėjime yra melas, išėjime yra tiesa
- OR, kitaip dar vadinama logine disjunkcija: jei visuose įėjimuose yra melas, išėjime yra melas, bet jei viename ar daugiau įjėjimų yra tiesa, išėjime irgi yra tiesa
Šitas rinkinukas yra funkcionaliai pakankamas, t.y., trijų funkcijų pakanka, norint realizuoti bet kurias likusias (o tuo pačiu – ir visą metateoriją), tačiau be jų, yra dar dvi itin geros funkcijos, be kurių būna labai keblu:
- XNOR, kitaip dar vadinama logine lygybe, o rečiau – logine ekskliuzinės disjunkcijos inversija. O žmoniškai šenkant – tai tiesiog palyginimas. XNOR yra nuostabi funkcija, kuri pati viena leidžia realizuoti visą Būlio algebrą, t.y., pati savaime yra funkcionaliai pakankama. Jos išėjime yra tiesa, jei abu įėjimai yra vienodi, t.y., jei abu yra tiesa arba abu yra melas, išėjime yra tiesa.
- XOR, arba ekskliuzinė disjunkcija, kuri ir yra šio straipsnio tema: lyg ir panašu į OR, tačiau absoliučiai kitas variantas. Jei vienas iš įėjimų yra melas, o kitas tiesa – išėjime gauname tiesą, bet jei abu įėjimai yra melas arba abu įėjimai sutampa, gauname melą.
Kitos pora populiarių funkcijų, tokios, kaip NAND (elementari AND rezultato inversija) arba NOR (tokia pat elementari OR rezultato inversija) – pakankamai neįdomios ir primityvios, kad jas labai jau lengva būtų realizuoti, kaip kitų funkcijų kombinacijas. Tačiau gyvenime, įprastoje kalboje AND, NOT ir OR – tiesiog būtinos, negalime apseiti ir be XNOR (lygybės) bei XOR – ekskliuzinės disjunkcijos. Nes kitaip užsiknistume, kaskart dėliodami nežmoniškas logines konstrukcijas, kai pakaktų ką nors pasakyti paprastai. Štai čia ir susiduriame su kalbos nepakankamumu bei užsistagnavusiomis kalbainių institucijomis.