Obrnuta poljska notacija

Izvor: Wikipedia
Postfix-dia.svg
Prefiksna notacija
Infiksna notacija
Postfiksna notacija

Obrnutu poljsku notaciju, takođe poznatu i kao postfiksnu notaciju, je izumeo australijski filozof i informatičar Čarls Hamblin sredinom 1950-ih, kako bi omogućio nula-adresna memorijska skladištenja. Ova notacija je izvedena iz poljske notacije, koju je 1920. uveo poljski matematičar, Jan Lukašijevič (Jan Łukasiewicz) (otuda predloženo ime Zciweisakul notacija.) Hamblin je predstavio svoj rad u junu 1957 na konferenciji, a objavio ga je 1957. i 1962.

Prvi računari koji su implementirali arhitekturu koja je omogućavala obrnutu poljsku notaciju su bili britanski KDF9, koji je najavljen 1960, a pušten u prodaju 1963, i američki Burroughs B5000, najavljen 1961, a pušten u prodaju takođe 1963. Jedan od dizajnera koji je radio na računaru Burroughs B5000, R. S. Barton, je kasnije pisao kako je on razvio obrnutu poljsku notaciju nezavisno od Hamblina, tokom 1958, dok je čitao knjigu o simboličkoj logici, a još nije bio upoznat sa Hamblinovim radom.

Friden ju je uveo u stone kalkulatore, sa EC-130, juna 1963. Hjulit-Pakardovi (HP) inženjeri su 1968. dizajnirali 9100A stoni računar sa obrnutom poljskom notacijom. Ovaj kalkulator je popularisao obrnutu poljsku notaciju u naučnim i inženjerskim krugovima, uprkos činjenici da se u reklami za ovaj kalkulator ona nije spominjala. HP-35 ručni naučni kalkulator je bio prvi naučni džepni kalkulator koji je koristio ovu notaciju 1972.

Kod Obrnute poljske notacije, operandi prethode operatoru, što uklanja potrebu za zagradama. Na primer, izraz 3 * ( 4 + 7) bi mogao da bude napisan kao 3 4 7 + *, a pomoću kalkulatora sa obrnutom poljskom notacijom bi se unosio na sledeći način "3", "Enter", "4", "Enter", "7", "+", "*". (Drugi, kompaktniji način pisanja bi bio 4 7 + 3 *, a na kalkulatoru bi unos izgledao ovako "4", "Enter", "7", "+", "3", "*".)

Implementacije obrnute poljske notacije koriste stekove; to jest, operandi se skidaju sa steka, a rezultat izračunavanje se vraća nazad na stek. Mada ovaj koncept može izgledati čudno na početku, prednost ove notacije je u tome što računar može vrlo lako (i stoga brzo) da analizira izraz.

Praktične implikacije[uredi - уреди]

  • Izračunavanja se izvršavaju sa leva na desno.
  • Ne koriste se zagrade, jer nisu potrebne.
  • Ne postoji dugme "jednako", već se koristi dugme "Enter".
  • Operandi prethode svom operatoru. Oni se uklanjaju pri izračunavanju operacije.
  • Kada se operacija izvrši, njen rezultat postaje operand (za sledeće operatore).
  • Ne postoji skriveno stanje: nema dileme da li je operator unet, ili nije.
  • Na kalkulatoru sa obrnutom poljskom notacijom je za većinu izračunavanja potrebno pritisnuti manje tastera nego kod onog sa algebarskom notacijom.
  • Računaru je lakše i brže da izračuna matematičke izraze napisane ovom, nego matematičke izraze napisane infiksnom notacijom.

Primer[uredi - уреди]

Izraz ((1 + 2) * 4) + 3 se u obrnutoj poljskoj notaciji može zapisati kao:

1 2 + 4 * 3 +

Ovaj izraz se izvršava na sledeći način (stek se prikazuje nakon što je operacija izvršena):

ulaz operacija stek
1 Push operand 1
2 Push operand 1, 2
+ Add 3
4 Push operand 3, 4
* Multiply 12
3 Push operand 12, 3
+ Add 15

Konačni rezultat, 15, se nalazi na vrhu steka na kraju izračunavanja.

Drugačiji način da se prikaže stek tokom pređašnjeg izraza je prikazan ispod (kao na -{HP48S}- kalkulatoru).

+---------------+
|               |
|               |
|             1 |  1 [enter]
+---------------+

+---------------+
|               |
|             1 |
|             2 |  2 [enter]
+---------------+

+---------------+
|               |
|               |
|             3 |  + 
+---------------+

+---------------+
|               |
|             3 |
|             4 |  4 [enter]
+---------------+

+---------------+
|               |
|               |
|            12 |  * 
+---------------+

+---------------+
|               |
|            12 |
|             3 |  3 [enter]
+---------------+

+---------------+
|               |
|               |
|            15 |  + 
+---------------+

Enteri su u zagradama, jer nisu neophodni ako iza njih slede operatori. Stoga obrnuta poljska notacija omogućava da se izraz unese u osam, umesto u jedanaest ili dvanaest koraka.

Eksterni linkovi[uredi - уреди]