Sommario:
- Definizione - Cosa significa Reverse Polish Notation (RPN)?
- Techopedia spiega Reverse Polish Notation (RPN)
Definizione - Cosa significa Reverse Polish Notation (RPN)?
La notazione polacca inversa (RPN) è un metodo per trasmettere espressioni matematiche senza l'uso di separatori come parentesi e parentesi. In questa notazione, gli operatori seguono i loro operandi, eliminando quindi la necessità di parentesi per definire la priorità di valutazione. L'operazione viene letta da sinistra a destra, ma l'esecuzione viene eseguita ogni volta che viene raggiunto un operatore e utilizzando sempre gli ultimi due numeri come operandi. Questa notazione è adatta per computer e calcolatrici poiché ci sono meno caratteri da tracciare e meno operazioni da eseguire.
La notazione polacca inversa è anche nota come notazione postfix.
Techopedia spiega Reverse Polish Notation (RPN)
La notazione polacca inversa fu proposta da Burks, Warren e Wright nel 1954 e così chiamata perché era semplicemente il contrario della notazione polacca (notazione prefisso), inventata dal logico polacco Jan Lukasiewicz, che pone l'operatore davanti agli operandi. Negli anni '60, è stato poi reinventato in modo indipendente da EW Dijkstra e FL Bauer per ridurre il numero di accessi alla memoria del computer e aumentare le prestazioni. Ha usato lo stack del computer per memorizzare i suoi operandi prima di eseguire l'operatore.
RPN porta a calcoli più veloci per un paio di motivi. Uno è che ci sono meno informazioni da archiviare. Pertanto, invece di dover memorizzare nove caratteri per l'espressione ((5 - 3) * 2), i computer che utilizzano RPN devono solo memorizzare cinque caratteri con l'espressione 5 3 - 2 *. E poiché ci sono meno caratteri da elaborare, l'esecuzione diventa più veloce.
Quindi in un computer che utilizza RPN, la valutazione dell'espressione 5 1 - 3 * è la seguente:
- Spingi 5 nella pila. Questo è il primo valore.
- Spingi 1 nella pila. Questo è il secondo valore ed è nella posizione sopra il 5.
- Applicare l'operazione di sottrazione prendendo due operandi dallo stack (1 e 5). Il valore superiore (1) viene sottratto dal valore sottostante (5) e il risultato (4) viene memorizzato nuovamente nello stack. 4 è ora l'unico valore nello stack ed è in fondo.
- Spingere 3 nella pila. Questo valore è nella posizione superiore a 4 nello stack.
- Applicare l'operazione di moltiplicazione togliendo gli ultimi due numeri dallo stack e moltiplicandoli. Il risultato viene quindi rimesso nello stack. Dopo questa operazione, lo stack ora contiene solo il numero 12.
