Kapitola 1: Úvod – Vítejte ve světě logiky

Vítejte u knihy, která má ambici změnit způsob, jakým přemýšlíte o počítačích a řešení problémů. Možná už máte nějaké zkušenosti s programováním ve škole nebo doma. Možná jste psali kód v Pythonu, Javě nebo C#. Pokud ano, připravte se na kulturní šok. Prolog je totiž úplně jiný svět. Není to jen další jazyk s jinými závorkami. Je to jiný způsob myšlení.

Představte si, že jste detektiv. Ne ledajaký, ale Sherlock Holmes. Přijdete na místo činu. Vidíte nedopalek cigarety, otisk boty velikosti 45 a rozbité hodiny, které se zastavily v 10:30. Vaším úkolem není běhat po městě a zkoušet každého zatknout. Vaším úkolem je sednout si do křesla, zapálit dýmku a myslet. Musíte spojit fakta dohromady, vyloučit nemožné a to, co zbude, musí být pravda.

Sherlock Holmes a programování
Obrázek 1.1: Sherlock Holmes hledá pravdu v kódu, zatímco kuchař se snaží vařit podle receptu.

Kuchař vs. Detektiv

Většina programovacích jazyků (jako Java, Python nebo C++) funguje jako kuchařka. Musíte počítači přesně říct, krok za krokem, co má dělat. Tomuto přístupu říkáme imperativní programování. Váš kód vypadá jako recept:

  1. Vezmi vejce.
  2. Rozbij ho o hranu mísy.
  3. Dej ho na pánev.
  4. Smaž přesně 3 minuty.

Pokud zapomenete jeden krok, nebo ho napíšete špatně, počítač se zasekne. Neví, co má dělat. Počítač je v tomto případě jen poslušný, ale hloupý dělník, který bezhlavě plní rozkazy.

Prolog je jiný. Samotný název jazyka, Prolog, je zkratkou francouzských slov "PROgrammation en LOGique", což znamená "programování v logice". A to je přesně to, co dělá. Je to deklarativní jazyk. V Prologu neříkáte počítači, jak má něco udělat. Říkáte mu, co je pravda. Popisujete svět a vztahy v něm. Místo receptu píšete policejní zprávu:

A pak se zeptáte: "Kdo je vrah?"
Prolog sám projde miliardy kombinací, použije logiku, kterou jste mu dali, a odpoví: "Vrah je komorník." Vy jste nenapsali algoritmus hledání. Vy jste jen popsali pravdu a nechali počítač, aby našel řešení.

Klíčový koncept: Imperativní vs. Deklarativní

Proč se učit Prolog v 21. století?

Možná si říkáte: "Tento jazyk vznikl v roce 1972. Není to historie? Proč se to učit dnes, v době neuronových sítí?" Odpověď je jednoduchá: Logika nestárne. Prolog je sice "dědečkem" moderní umělé inteligence, ale stále je velmi vitální a v některých oblastech nenahraditelný.

V této knize se nenaučíte jen psát kód. Naučíte se myslet. Naučíte se rozkládat složité problémy na malé logické kousky. A to je dovednost, kterou vám žádná AI nevezme.

Otázky k zamyšlení

  1. Vymyslete vlastní analogii (kromě kuchaře a detektiva) pro vysvětlení rozdílu mezi imperativním a deklarativním programováním.
  2. Popište jednoduchý problém z vašeho každodenního života (např. výběr oblečení podle počasí) a zkuste formulovat fakta a pravidla, která byste dali Prologu k jeho vyřešení.
  3. Proč je pro systémy jako NASA nebo pro právní software důležitější logické odvození (jako v Prologu) než statistické hádání (jako u některých neuronových sítí)?

🧪 Laboratoř: První myšlenky v logice