# Difference between revisions of "Reverse Polish Notation"

Fjohnrickert (Talk | contribs) m (→History) |
Fjohnrickert (Talk | contribs) m (→How to Use) |
||

Line 7: | Line 7: | ||

=How to Use= | =How to Use= | ||

− | While writing out equations in RPN is possible in working with equations with variables, RPN is primarily used for telling machines how to calculate numbers. Because of this, all RPN notation is actually a line of command code. Values are input into a sequence and operations are inserted to be performed on the two preceding values. “2 + 2 =” is translated as “2 2 +.” For more complicated sets of data in which the order of operation must be considered RPN becomes less obvious: “4 - 3 * 9 + 1 =” can become “3 9 * 4 - 1 +” or “1 4 3 9 * - +.” With practice RPN can become easily readable, but is not often explicitly written out. Instead the raw data or equation is meant to be translated by the calculator’s user as he or she is inputting the data. This transparent nature of RPN is actually a part of the cause for its being pushed into obscurity. The above examples of RPN are not really equations but the process for solving the math problem. RPN serves not to carry some message, but becomes the medium of | + | While writing out equations in RPN is possible in working with equations with variables, RPN is primarily used for telling machines how to calculate numbers. Because of this, all RPN notation is actually a line of command code. Values are input into a sequence and operations are inserted to be performed on the two preceding values. “2 + 2 =” is translated as “2 2 +.” For more complicated sets of data in which the order of operation must be considered RPN becomes less obvious: “4 - 3 * 9 + 1 =” can become “3 9 * 4 - 1 +” or “1 4 3 9 * - +.” With practice RPN can become easily readable, but is not often explicitly written out. Instead the raw data or equation is meant to be translated by the calculator’s user as he or she is inputting the data. This transparent nature of RPN is actually a part of the cause for its being pushed into obscurity. The above examples of RPN are not really equations but the process for solving the math problem. RPN serves not to carry some message, but becomes the medium of the mathematic process itself. RPN’s content becomes unimportant in its use and instead is most interesting for not what it tells us, but how. |

RPN calculators are then actually requiring their users to not just input numbers, but to actually program a very basic computer code into the calculator. Doing this then makes RPN users less passive compared to those with common calculators. The calculator may be performing the mathematic operations, but the user is wholly aware of exactly what steps the machine is taking with each keystroke. This produces a required level of mathematic understanding in the RPN user. RPN then becomes a tool to protect against inaccuracy in number crunching, but refuses to allow the process of solving equations to become black boxed. Algebraic notation calculators are guilty of this because they internalize the order of operations turing calculator inputs from a dictation of process into a transferring of symbols. Mathematic processes then seem to happen without any kind of deep understanding of the process of math. Because of this RPN needs to be implemented into use throughout educational systems all over the world. | RPN calculators are then actually requiring their users to not just input numbers, but to actually program a very basic computer code into the calculator. Doing this then makes RPN users less passive compared to those with common calculators. The calculator may be performing the mathematic operations, but the user is wholly aware of exactly what steps the machine is taking with each keystroke. This produces a required level of mathematic understanding in the RPN user. RPN then becomes a tool to protect against inaccuracy in number crunching, but refuses to allow the process of solving equations to become black boxed. Algebraic notation calculators are guilty of this because they internalize the order of operations turing calculator inputs from a dictation of process into a transferring of symbols. Mathematic processes then seem to happen without any kind of deep understanding of the process of math. Because of this RPN needs to be implemented into use throughout educational systems all over the world. |

## Revision as of 10:20, 29 March 2010

Reverse Polish Notation (RPN) is a programing code for ordering and performing mathematic operations. Unlike algebraic notation it has no grouping symbols or equals signs. This simplifies the order of operations for imputing calculations into computers and calculators. While RPN was popular for both scientific and business calculations, its value as an input notation has become diminished thanks to the creation of higher powered calculators and spreadsheet software. While many of the principles behind RPN are still used in some programing languages, the use of RPN as a human input method is likely to remain esoteric.

## Contents

# History

Around 1920 Jan Łukasiewicz developed Polish notation. This idea was then taken in 1957 and modified to place the operators, or process symbols, after the operands, or numbers. RPN then used the idea of recursive stacks which allowed for more efficient memory usage in computers (Burks).

Soon after, commercially available computers that used RPN were developed. In 1968 Hewlett-Packard (HP) released the 9100A Desktop Calculator which used RPN. Then in 1972 the handheld scientific calculator, the HP-35 was released and used RPN. While HP solely used RPN for many of its early calculators, it has expanded to many calculators that use algebraic notation instead. While these calculators are much more dominate in the marketplace now, there is still a low level demand for RPN enabled calculators (HP). This demand is decreasing as algebraic notation calculators, such as the TI-84, are becoming the standard in schools and many universities.

# How to Use

While writing out equations in RPN is possible in working with equations with variables, RPN is primarily used for telling machines how to calculate numbers. Because of this, all RPN notation is actually a line of command code. Values are input into a sequence and operations are inserted to be performed on the two preceding values. “2 + 2 =” is translated as “2 2 +.” For more complicated sets of data in which the order of operation must be considered RPN becomes less obvious: “4 - 3 * 9 + 1 =” can become “3 9 * 4 - 1 +” or “1 4 3 9 * - +.” With practice RPN can become easily readable, but is not often explicitly written out. Instead the raw data or equation is meant to be translated by the calculator’s user as he or she is inputting the data. This transparent nature of RPN is actually a part of the cause for its being pushed into obscurity. The above examples of RPN are not really equations but the process for solving the math problem. RPN serves not to carry some message, but becomes the medium of the mathematic process itself. RPN’s content becomes unimportant in its use and instead is most interesting for not what it tells us, but how.

RPN calculators are then actually requiring their users to not just input numbers, but to actually program a very basic computer code into the calculator. Doing this then makes RPN users less passive compared to those with common calculators. The calculator may be performing the mathematic operations, but the user is wholly aware of exactly what steps the machine is taking with each keystroke. This produces a required level of mathematic understanding in the RPN user. RPN then becomes a tool to protect against inaccuracy in number crunching, but refuses to allow the process of solving equations to become black boxed. Algebraic notation calculators are guilty of this because they internalize the order of operations turing calculator inputs from a dictation of process into a transferring of symbols. Mathematic processes then seem to happen without any kind of deep understanding of the process of math. Because of this RPN needs to be implemented into use throughout educational systems all over the world.

# As Thought

RPN is an explicit expression of the way we think. For example if we are looking at how long it took to get somewhere we would look at the time we left our starting point and the time we arrived at our destination * then* take the difference. To put this in simpler RPN terms it is “leaving time, arriving time, subtract.” Thus, RPN is actually directly related to the ways in which we think. A calculator then would simply perform the operation of subtraction (which is a slightly more abstract process in some ways). While this turns our thoughts into nothing more than inputs and outputs for our consciousness in many cases this metaphor functions quite well. To use RPN is to record our thoughts as discrete pieces of information which when strung together show the way in which decisions and other actions are decided. Unlike many of other kinds of choice theory which focus on operations used to form new thoughts from old ones, RPN actually charts thoughts out as pieces of larger process. This luminous can easily be ignored, but it often serves as the way through which we see the whole of the world. A discussion on this way of processing seems to be missing from within the field of economics.

This process shifts all of our awareness onto only the very specific parts of something we deem important. In a math problem we are able to simply edit out all of the relationships between the numbers accept for the straight line of needed to put them together into one number. Likewise, in a situation such as travel we only concern ourselves with ideas like “New York, Boston, bus” and not at all in the way the road turns along the way. In both cases we loose something of the process, but we do so in the name of getting to our destinations with ease. Efficiency achieved we must make sure to look beyond our RPN-like thought processes and recognize that there is, in fact, more in between each input than what we often see.

In dealing with numbers the calculator becomes a part of our brain. It externalizes the work of the mathematic process that we once had to do in our heads. The way we think then becomes directly related to the way in which we use the calculator. While using RPN the steps we take to produce new thoughts become explicit to the user. Thus while the actual doing of the mathematic operation has been outsourced from the brain to the calculator an awareness of the mathematic thought process comes into being. This awareness of the process is not created in the use of algebraic notation calculators. Instead these calculators remove the need for any consideration of how to perform a process from the user, giving it entirely over to the machine. This becomes sort of the reverse of the way technology has influenced the way we understand vision, as Jonathan Crary describes. For him, vision went from something externally created to something that was deeply rooted in the individual eye. RPN allowed us to deeply entrench the mathematic process into our minds, while algebraic notation input turns math and by extension the act of process entirely into the world outside oneself. This has produced a generation of people, unlike their parents who were forced to think about math as a process, who cannot dissect the steps needed to achieve what they want.

# References

- Crary, Jonathan.
*Techniques of the Observer*. MIT Press: Cambridge (1990). - Burks, Arthur W., et. al. “An Analysis of a Logical Machine Using Parenthesis-Free Notation,” in
*Mathematical Tables and Other Aids to Computation*. Vol 8, No 46: 53-57 (April 1954). - ”What is RPN?” HP.com, 2010 (accessed March 24, 2010).
- Łukasiewicz, Jan, "Philosophische Bemerkungen zu mehrwertigen Systemen des Aussagenkalküls",
*Comptes rendus des séances de la Société des Sciences et des Lettres de Varsovie*, Vol 23: 51-77 (1930). Translated by H. Weber as "Philosophical Remarks on Many-Valued Systems of Propositional Logics," in Storrs McCall, Polish Logic 1920-1939, Clarendon Press: Oxford (1967).