Notacja polska

Z testwiki
Wersja z dnia 04:41, 30 wrz 2023 autorstwa imported>Akumiszcza (drobne poprawki, usunięcie szablonu W Edycji (by SublimeText.Mediawiker))
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Notacja polska, zapis przedrostkowy, notacja Łukasiewicza, notacja prefiksowa, symbolika beznawiasowa – sposób zapisu wyrażeń logicznych (a później arytmetycznych), podający najpierw operator, a potem operandy (argumenty), który został wynaleziony w 1924[1], a pierwszy raz użyty w druku w 1929[2], przez polskiego (stąd nazwaSzablon:Refn) filozofa i logika Jana Łukasiewicza.

Notacja polska różni się od notacji infiksowej (w których operatory znajdują się pomiędzy argumentami i wymaga stosowania nawiasów) używanych m.in. przez klasyczne dzieło formalizmu logicznego Principia Mathematica Bertranda Russella i A.N. Whiteheada, a także od odwrotnej notacji polskiej, gdzie operatory znajdują za argumentami. Według Jana Woleńskiego, notacja ta pozwala na łatwiejsze przeprowadzanie operacji na formułach o znacznej długości; formuły krótsze wydają się tu jednak mniej intuicyjne niż w notacji nawiasowej, stąd notacja Łukasiewicza jest rzadko spotykana w dydaktyceSzablon:Odn.

Czasami terminem „notacja polska” obejmuje się notację z operatorem na początku, jak i odwrotną, z operatorem na końcu[3].

Notacja ta używana jest w logice znacznie rzadziej niż notacja infiksowa[4]; wśród niepolskojęzycznych naukowców używających jej znajdował się m.in. Arthur PriorSzablon:Odn. Nazwa „notacja polska” zaczęła pojawiać się w druku w latach 50. XX wiekuSzablon:Odn. Obecnie informatyka jest jedynym polem, gdzie notacja ta jest wciąż popularna, szczególnie jej odwrotna odmiana.

Gdy notacja polska jest używana jako składnia dla wyrażeń matematycznych przez interpretery języków programowania, jest ona łatwo parsowana do drzew składniowych. Może ona definiować jednoznaczne odwzorowanie dla tego samego wyrażenia. Z tego powodu Lisp i pokrewne języki programowania definiują całą swoją składnię w notacji polskiej (a inne używają odwrotnej notacji polskiej).

Notacja w logice

Operatory logiczne notacji polskiej
N – negacja (Np, 'nieprawda, że p')
C – implikacja (Cpq, 'jeżeli p, to q')
A – alternatywa (Apq, 'p lub q')
D – dysjunkcja (Dpq, 'nieprawda, że (p i q)')
K – koniunkcja (Kpq, 'p i q')
E – równoważność (Epq, 'p wtedy, i tylko wtedy, gdy q')

Przykłady zapisu formuły

  • (pq)((qr)(pr)) to w notacji polskiej CCpqCCqrCpr
  • (¬pp)p to w notacji polskiej CCNppp
  • p(¬pq) to w notacji polskiej CpCNpq

Poniżej przedstawiona jest notacja polska dla współczesnej logiki. Niektóre zastosowane przez Łukasiewicza litery odpowiadają polskim nazwom operacji. Widać też tu operatory dla proponowanej przez Łukasiewicza wersji logiki wielowartościowej. Na podstawie Szablon:Odn, Szablon:Odn, Szablon:Odn, Szablon:Odn i Szablon:Odn.

operator notacja
konwencjonalna
notacja
polska
negacja ¬ϕ Nϕ
implikacja ϕψ Cϕψ
alternatywa ϕψ Aϕψ
koniunkcja ϕψ Kϕψ
dysjunkcja ϕψ Dϕψ
ekwiwalencja ϕψ Eϕψ
kwantyfikator ogólny pϕ 𝛱pϕ
kwantyfikator szczegółowy pϕ 𝛴pϕ
prawdziwy V
możliwość ϕ Mϕ lub 𝞓ϕ
konieczność ϕ Lϕ lub 𝛤ϕ

Notacja w arytmetyce

Wyrażenie w notacji polskiej nie wymaga nawiasów, ponieważ przypisanie argumentów do operatorów wynika wprost z ich kolejności w zapisie, o ile z góry znana jest liczba argumentów poszczególnych operatorów.

Na przykład zakładając, że operatory / i + są binarne, zapis w notacji polskiej:

   / 7 + 2 3

interpretuje się jednoznacznie jako równoważny notacji tradycyjnej (zapisowi wrostkowemu):

   7 / (2 + 3)

Notacja polska jest bliska naturalnemu sposobowi wyrażania działań, w którym zazwyczaj najpierw podaje się czynność, a następnie dopełnia wyrażenie wskazaniem rzeczy, do których czynność się odnosi. Działanie z przykładu powyżej naturalnie wypowiadamy po polsku:

„podziel siedem przez sumę dwu i trzech”
/ 7 + 2 3

Stąd zapis przedrostkowy stał się podstawą edukacyjnego języka programowania LogoSzablon:Fakt, a także języka Lisp[5]. Inne języki używają zapisu przyrostkowego (odwrotnej notacji polskiej), np. Forth[6], Tcl[7] i PostScript[8].

Zobacz też

Uwagi

Szablon:Uwagi

Przypisy

Bibliografia

Literatura dodatkowa

Szablon:Kontrola autorytatywna