Notația poloneză ( înregistrare ), cunoscută și ca notație de prefix (înregistrare), este o formă de scriere a expresiilor logice , aritmetice și algebrice . O trăsătură caracteristică a unei astfel de notații este că operatorul este situat în stânga operanzilor . Dacă operatorul are o aritate fixă , atunci o astfel de notație nu va avea paranteze și poate fi interpretată fără ambiguitate. Logicianul polonez Jan Lukasiewicz a inventat această notație în jurul anului 1920 pentru a simplifica logica propozițională .
Alonzo Church a menționat această notație în cartea sa clasică despre logica matematică ca un sistem de notare demn de remarcat și chiar a contrastat expunerile lui Alfred Whitehead și Bertrand Russell despre notațiile logice din Principia Mathematica . [unu]
Chiar dacă notația poloneză nu este folosită în matematică, este utilizată pe scară largă în informatică .
În notația cu prefix , adăugarea numerelor 1 și 2 se va scrie „+ 1 2” în loc să scrie „1 + 2”. În expresiile mai complexe, operatorii preced operanzii, dar operanzii înșiși pot fi expresii non-triviale care conțin propriii operatori. De exemplu, o expresie care este scrisă în notație infixă tradițională
(5 − 6) * 7în prefix se poate scrie ca
*(− 5 6) 7sau pur și simplu
* − 5 6 7Deoarece orice operație aritmetică simplă este binară, reprezentarea ei cu prefix nu poate fi interpretată în două moduri, deci nu este nevoie să folosiți paranteze. În exemplul anterior, erau necesare paranteze în notația tradițională, infixă, iar acum le vom muta
5 − (6 * 7)sau pur și simplu șterge
5 − 6 * 7aceasta va schimba sensul și rezultatul evaluării întregii expresii. Notația de prefix corespunzătoare pentru o astfel de expresie ar arăta astfel:
− 5 * 6 7Calculul de scădere este întârziat până când ambii operanzi (5 și rezultatul înmulțirii cu 6 și 7) au fost citite. Ca și în cazul oricărei alte notații, expresiile cele mai profunde sunt evaluate mai întâi, dar în notația poloneză adâncimea unei expresii este determinată de ordine, nu de paranteze.
Notația de prefix în aritmetică simplă este de interes în mare parte academic. La fel ca notația postfix , notația prefix a fost folosită pentru unele computere comerciale (HP-11C). Învățarea despre notația de prefix este adesea primul pas în proiectarea compilatorului.
Notația de prefix este utilizată pe scară largă în expresiile s din limbajul de programare Lisp , unde parantezele sunt necesare deoarece operatorii aritmetici au diferite arități. Limbajul de programare Ambi folosește notația poloneză pentru operații aritmetice și structura programului. Notația Postfix este utilizată în multe limbaje de stivă , cum ar fi PostScript , și este baza pentru multe mașini de calcul (calculatoare), în special pentru mașini de calcul Hewlett-Packard .
De asemenea, este important de reținut că numărul de operanzi dintr-o expresie trebuie să fie cu unul mai mult decât numărul de operații, altfel expresia nu are sens (având în vedere că în expresia se folosesc doar operații binare ). Acest lucru poate fi ușor trecut cu vederea atunci când lucrați cu expresii lungi și complexe, ceea ce va duce la erori. Prin urmare, este necesar să acordați atenție numărului de operații și operanzi atunci când utilizați notația de prefix.
Ordinea operațiilor este determinată de structura notației prefixului și poate fi determinată cu ușurință. Principalul lucru de reținut este că atunci când se evaluează o expresie, ordinea operanzilor trebuie păstrată. Acest lucru nu este important pentru operațiile care sunt comutative , dar pentru operațiile necomutative, cum ar fi scăderea și împărțirea , acest fapt este cheia pentru analizarea expresiei. De exemplu, următoarea expresie:
/ 10 5 = 2 (notație cu prefix)
ar trebui citit ca „împărțirea a 10 la 5”. Prin urmare, rezultatul calculului va fi 2, nu ½, ceea ce ar fi rezultatul unei analize incorecte a expresiei.
Notația de prefix este deosebit de populară în limbile stive, datorită capacității lor de a distinge cu ușurință între ordinea operațiilor fără a utiliza paranteze. Pentru a determina ordinea de evaluare a operatorilor în notația prefixă, nici măcar nu este necesară memorarea întregii ierarhii operaționale, ca și în notația infixă . În loc să analizați expresia pentru a găsi operatorul care trebuie evaluat mai întâi, ar trebui să citiți expresia de la stânga la dreapta, uitându-vă la operator și cei mai apropiați doi operanzi ai săi. Dacă există un alt operator printre acești operanzi, atunci evaluarea primului operator este întârziată până la evaluarea noului operator. Iterațiile acestui proces sunt repetate până când operatorul este evaluat, ceea ce trebuie să se întâmple în cele din urmă dacă numărul de operanzi din expresie este cu unul mai mare decât numărul de operații (în cazul operațiilor binare). Odată ce un operator a fost evaluat, acesta și cei doi operanzi ai săi sunt înlocuiți cu valoarea rezultată (operandul). Deoarece operatorul și doi operanzi sunt înlocuiți cu operandul calculat, există un operator și un operand mai puțin. După aceea, în expresie rămân, de asemenea, N operatori și N + 1 operanzi, ceea ce vă permite să continuați procesul iterativ .
În exemplul de mai jos, puteți vedea că o expresie aparent complicată în notație prefixă, de fapt, nu este atât de greu de înțeles (în dreapta semnului egal, expresia corespunzătoare în notație infixă):
- * / 15 - 7 + 1 1 3 + 2 + 1 1 = 15 / (7 - (1 + 1) ) * 3 - (2 + (1 + 1)) - * / 15 - 7 2 3 + 2 + 1 1 = 15 / (7 - 2) * 3 - (2 + (1 + 1)) - * / 15 5 3 + 2 + 1 1 = 15 / 5 * 3 - (2 + (1 + 1)) - * 3 3 + 2 + 1 1 = 3 * 3 - (2 + (1 + 1)) - 9 + 2 + 1 1 = 9 - (2 + (1 + 1) ) - 9 + 2 2 = 9 - (2 + 2) - 9 4 = 9 - 4 5 = 5Tabelul de mai jos prezintă notația de bază propusă de Jan Lukasiewicz pentru logica propozițională . Unele litere ale notației poloneze reprezintă cuvinte specifice în poloneză :
concept | Notație condiționată |
Notație poloneză |
cuvânt polonez |
---|---|---|---|
Negare | φ | Nφ | negacja |
Conjuncție | φ ψ | Kφψ | koniunkcja |
Disjuncție | φ ψ | Aφψ | alternativă |
implicare | φ ψ | Cφψ | |
Echivalenţă | φ ψ | Eφψ | ekwiwalencja |
Accident vascular cerebral Schaeffer | Dφψ | dysjunkcja | |
Posibilitate | φ | Mφ | możliwość |
Nevoie | φ | Lφ | |
Cuantificator universal | φ | Πφ | |
Cuantificator de existență | φ | Σφ |
Rețineți că în lucrarea lui Lukasiewicz despre logica cu mai multe valori, cuantificatorii sunt ordonați după valoarea propozițională.