Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Reverse Polish notation
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Hardware calculators === ==== Early history ==== The first computer implementing a form of reverse Polish notation (but without the name and also without a [[stack machine|stack]]), was [[Konrad Zuse]]'s [[Z3 (computer)|Z3]], which he started to construct in 1938 and demonstrated publicly on 12 May 1941.<ref name="parTU_2000"/><ref name="Zuse_2008"/><ref name="DHM_2013"/><ref name="Bundesmann_2016"/> In dialog mode, it allowed operators to enter two operands followed by the desired operation.{{refn|group=z3|In reference to "In dialog mode, it allowed operators to enter two operands followed by the desired operation" for the Z3 computer, the following citations are relevant :<ref name="Ceruzzi_1980"/><ref name="Ceruzzi_1983"/><ref name="Rojas_1997"/><ref name="Zuse_2005"/><ref name="Zuse_2008"/><ref name="Bonten_2009"/><ref name="Bundesmann_2016"/><ref name="WDF_2018"/><ref name="Tremmel_2021"/>}} It was destroyed on 21 December 1943 in a bombing raid.<ref name="Zuse_2008"/> With Zuse's help a first replica was built in 1961.<ref name="Zuse_2008"/> The 1945 [[Z4 (computer)|Z4]] also added a 2-level [[stack machine|stack]].<ref name="Blaauw-Brooks_1997"/><ref name="LaForest_2007"/> Other early computers to implement architectures enabling reverse Polish notation were the [[English Electric Company]]'s [[English Electric KDF9|KDF9]] machine, which was announced in 1960 and commercially available in 1963,<ref name="Beard_1997"/> and the [[Burroughs B5000]], announced in 1961 and also delivered in 1963: Presumably, the KDF9 designers drew ideas from Hamblin's [[GEORGE (autocode system)|GEORGE]] (General Order Generator),<ref name="Hamblin_1957_1"/><ref name="Hamblin_1957_2"/><ref name="Hamblin_1958"/><ref name="Duncan_1977"/><ref name="Allen_1985"/><ref name="LaForest_2007"/> an [[autocode]] programming system written for a [[English Electric DEUCE|DEUCE]] computer installed at the [[University of Sydney]], Australia, in 1957.<ref name="Hamblin_1957_1"/><ref name="Hamblin_1957_2"/><ref name="Hamblin_1958"/><ref name="Beard_1997"/> One of the designers of the B5000, [[Robert S. Barton]], later wrote that he developed reverse Polish notation independently of Hamblin sometime in 1958 after reading a 1954 textbook on symbolic logic by [[Irving Copi]],<ref name="NewApproach"/><ref name="B5000_1985"/><ref name="Galler-Rosin_1985"/> where he found a reference to Polish notation,<ref name="Galler-Rosin_1985"/> which made him read the works of Jan Εukasiewicz as well,<ref name="Galler-Rosin_1985"/> and before he was aware of Hamblin's work. [[Friden, Inc.|Friden]] introduced reverse Polish notation to the desktop calculator market with the [[Friden EC-130|EC-130]], designed by [[Bob Ragen|Robert "Bob" Appleby Ragen]],<ref name="Ragen_2012"/> supporting a four-level stack<ref name="Ball_1978"/> in June 1963<!-- Ball writes ca. 1964 -->.<ref name="Friden_EC-130"/> The successor [[Friden EC-132|EC-132]] added a square root function in April 1965.<ref name="Friden_EC-132"/> Around 1966, the [[Monroe Epic]] calculator supported an unnamed input scheme resembling RPN as well.<ref name="Ball_1978"/> ==== {{anchor|HP}}Hewlett-Packard ==== {{main|HP calculators}} [[File:Hewlett-Packard No Equals hat.jpg|thumb|A promotional Hewlett-Packard "No Equals" hat from the 1980s β both a boast and a reference to RPN]] {{anchor|Three-level RPN}}[[Hewlett-Packard]] engineers designed the [[Hewlett-Packard 9100A|9100A Desktop Calculator]] in 1968 with reverse Polish notation<ref name="Osborne_1994"/> with only three stack levels with working registers ''X'' ("keyboard"), ''Y'' ("accumulate") and visible storage register ''Z'' ("temporary"),<ref name="Monnier_1968"/><ref name="HP9100A_1968"/> a reverse Polish notation variant later referred to as ''three-level RPN''.<ref name="HP9100A_1998"/> This calculator popularized reverse Polish notation among the scientific and engineering communities. {{anchor|Four-level RPN|Classical RPN|Automatic Memory Stack}}The [[HP-35]], the world's first handheld scientific [[calculator]],<ref name="Osborne_1994"/> introduced the classical ''four-level RPN'' with its specific ruleset of the so-called ''operational (memory) stack''<ref name="HP35_UM"/><ref group="nb" name="NB_Operational_memory_stack"/> (later also called ''automatic memory stack''<ref name="HP42_OM"/><ref name="HP15C_2011"/><ref group="nb" name="NB_Operational_memory_stack"/>) in 1972.<ref name="Laporte_2014"/> In this scheme, the {{key press|Enter {{larger|β}}}} key duplicates values into Y under certain conditions (''automatic stack lift'' with ''temporary stack lift disable''), and the top register ''T'' ("top") gets duplicated on drops (''top copy on pop'' aka ''top stack level repetition'') in order to ease some calculations and to save keystrokes.<ref name="HP15C_2011"/> HP used reverse Polish notation on every handheld calculator it sold, whether scientific, financial, or programmable, until it introduced the [[Hewlett-Packard HP-10|HP-10]] [[adding machine]] calculator in 1977. By this time, HP was the leading manufacturer of calculators for professionals, including engineers and accountants. Later calculators with LCDs in the early 1980s, such as the [[HP-10C]], [[HP-11C]], [[HP-15C]], [[HP-16C]], and the financial [[HP-12C]] calculator also used reverse Polish notation. In 1988, Hewlett-Packard introduced a business calculator, the [[HP-19B]], without reverse Polish notation, but its 1990 successor, the [[HP-19BII]], gave users the option of using algebraic or reverse Polish notation again. {{anchor|Dynamic stack}}In 1986,<ref name="Wickes_1987"/><ref name="RPLMAN"/> HP introduced [[RPL (programming language)|RPL]], an object-oriented successor to reverse Polish notation. It deviates from classical reverse Polish notation by using a dynamic stack only limited by the amount of available memory (instead of three or four fixed levels) and which could hold all kinds of data objects (including symbols, strings, lists, matrices, graphics, programs, etc.) instead of just numbers. The system would display an error message when running out of memory instead of just dropping values off the stack on overflow as with fixed-sized stacks.<ref name="Wessman_2016"/> It also changed the behaviour of the stack to no longer duplicate the top register on drops (since in an unlimited stack there is no longer a top register) and the behaviour of the {{key press|Enter {{larger|β}}}} key so that it no longer duplicated values into Y, which had shown to sometimes cause confusion among users not familiar with the specific properties of the ''automatic memory stack''. From 1990 to 2003, HP manufactured the [[HP-48 series]] of graphing RPL calculators, followed by the [[HP-49 series]] between 1999 and 2008. The last RPL calculator was named [[HP 50g]], introduced in 2006 and discontinued in 2015. However, there are several community efforts like [[newRPL]] or [[DB48X]] to recreate RPL on modern calculators. As of 2011, Hewlett-Packard was offering the calculator models 12C, 12C Platinum, [[HP 17bII+|17bII+]], [[HP 20b|20b]], [[HP 30b|30b]], [[HP 33s|33s]], [[HP 35s|35s]], [[HP 48gII|48gII]] (RPL) and 50g (RPL) which support reverse Polish notation.<ref name="HP_Calc"/> {{anchor|Entry RPN}}While calculators emulating classical models continued to support classical reverse Polish notation, new reverse Polish notation models feature a variant of reverse Polish notation, where the {{key press|Enter {{larger|β}}}} key behaves as in RPL. This latter variant is sometimes known as ''entry RPN''.<ref name="HP_Evolves"/> {{anchor|128-level RPN|Advanced RPN}}In 2013, the [[HP Prime]] introduced a ''128-level'' form of entry RPN called ''advanced RPN''. In contrast to RPL with its dynamic stack, it just drops values off the stack on overflow like other fixed-sized stacks do.<ref name="Wessman_2016"/> However, like RPL, it does not emulate the behaviour of a classical operational RPN stack to duplicate the top register on drops. In late 2017, the list of active models supporting reverse Polish notation included only the 12C, 12C Platinum, 17bii+, 35s, and Prime. By July 2023, only the 12C, 12C Platinum, the freshly released [[HP 15C Collector's Edition]], and the Prime remain active models supporting RPN. {{See also|#Community-developed hardware-based calculators{{!}}HP-related community-developed calculators}} ==== Sinclair Radionics ==== In Britain, [[Clive Sinclair]]'s [[Sinclair Scientific]] (1974) and [[Sinclair Scientific Programmable|Scientific Programmable]] (1975) models used reverse Polish notation.<ref name="Shirriff_2013"/><ref name="Sharwood_2013"/> ===={{anchor|Two-level RPN}}Commodore==== In 1974, [[Commodore Business Machines|Commodore]] produced the [[Commodore MM6|Minuteman *6]] (MM6) without an {{key press|Enter {{larger|β}}}} key and the [[Commodore MM6X|Minuteman *6X]] (MM6X) with an {{key press|Enter {{larger|β}}}} key, both implementing a form of ''two-level RPN''. The [[Commodore SR4921 RPN|SR4921 RPN]]<!-- not to be confused with the SR4921 without the RPN suffix! --> came with a variant of ''four-level RPN'' with stack levels named X, Y, Z, and W (rather than T) and an {{key press|Ent}} key (for "entry"). In contrast to Hewlett-Packard's reverse Polish notation implementation, W filled with 0 instead of its contents being duplicated on stack drops.<ref name="Commodore_SR4921R"/> ==== Prinztronic ==== '''Prinz''' and '''Prinztronic''' were own-brand trade names of the British [[Dixons Retail|Dixons]] photographic and electronic goods stores retail chain, later rebranded as [[Currys Digital]] stores, and became part of DSG International. A variety of calculator models was sold in the 1970s under the Prinztronic brand, all made for them by other companies. Among these was the PROGRAM<ref name="Prinztronic"/> Programmable Scientific Calculator which featured reverse Polish notation. ==== {{anchor|5-level RPN}}Heathkit ==== The [[Aircraft Navigation Computer]] [[Heathkit OC-1401]]/[[Heathkit OCW-1401|OCW-1401]] used ''five-level RPN'' in 1978. ==== Soviet Union / Semico ==== [[Soviet Union|Soviet]] programmable calculators ([[MK-52]], [[MK-61]], [[Elektronika B3-34|B3-34]] and earlier [[B3-21]]<ref name="Elektronika_B3-21"/> models) used reverse Polish notation for both automatic mode and programming. Modern Russian calculators [[MK-161]]<ref name="Elektronika_MK-161"/> and [[MK-152]],<ref name="Elektronika_MK-61"/> designed and manufactured in [[Novosibirsk]] since 2007 and offered by [[Semico]],<ref name="SEMICO"/> are backwards compatible with them. Their extended architecture is also based on reverse Polish notation. ==== Others ==== * {{anchor|7-level RPN}}A seven-level stack had been implemented in the [[MITS 7400C]] scientific desktop calculator in 1972<ref name="RE_1972"/><ref name="Berger_1973"/><ref name="MITS7400"/> * [[National Semiconductor]] 4615 and 4640 * Novus 650 Mathbox, 3500 Sliderule, 4510 Mathematician, 4515 Mathematician PRO/RG, 4520 Scientist and 4525 Scientist PR * Some [[APF Electronics Inc.|APF]] calculators like the Mark 55 (1976)<ref name="TKE_1976"/> * [[SwissMicros]] (originally firming as RPN-Calc) calculators including the [[SwissMicros DM-10CC|DM-10CC]] (2012), [[SwissMicros DM-11CC|DM-11CC]] (2012), [[SwissMicros DM-12CC|DM-12CC]] (2012), [[SwissMicros DM-15CC|DM-15CC]] (2012), [[SwissMicros DM-16CC|DM-16CC]] (2012), [[SwissMicros DM10|DM10]] (2013), [[SwissMicros DM11|DM11]] (2013), [[SwissMicros DM12|DM12]] (2013), [[SwissMicros DM15|DM15]] (2013), [[SwissMicros DM16|DM16]] (2013), [[SwissMicros DM10L|DM10L Collector's Edition]] (2020), [[SwissMicros DM11L|DM11L]] (2016), [[SwissMicros DM12L|DM12L]] (2016), [[SwissMicros DM15L|DM15L]] (2015), [[SwissMicros DM16L|DM16L]] (2015), [[SwissMicros DM41|DM41]] (2015), [[SwissMicros DM41L|DM41L]] (2015), [[SwissMicros DM41X|DM41X]] (2020), [[SwissMicros DM42|DM42]] (2017) and [[SwissMicros DM32|DM32]] (2023). ==== {{anchor|8-level RPN}}Community-developed hardware-based calculators ==== {{See also|#Hewlett-Packard{{!}}Hewlett-Packard RPN calculators}} An eight-level stack was suggested by John A. Ball in 1978.<ref name="Ball_1978"/> The community-developed calculators [[WP 34S]] (2011<!-- with some initial planning going back to 2008 -->), [[WP 31S]] (2014) and [[WP 34C]] (2015), which are based on the [[HP 20b]]/[[HP 30b]] hardware platform, support classical Hewlett-Packard-style reverse Polish notation supporting automatic stack lift behaviour of the {{key press|Enter {{larger|β}}}} key and top register copies on pops, but switchable between a four- and an eight-level operational stack. In addition to the optional support for an eight-level stack, the newer [[SwissMicros DM42]]-based [[WP 43S]] as well as the [[WP 43C]] (2019) / [[C43 (calculator)|C43]] (2022) / [[C47 (calculator)|C47]] (2023) derivatives support data types for stack objects (real numbers, infinite integers, finite integers, complex numbers, strings, matrices, dates and times). The latter three variants can also be switched between ''classical'' and ''entry RPN'' behaviour of the {{key press|Enter {{larger|β}}}} key, a feature often requested by the community.<ref name="Paul_2015"/> They also support a rarely seen [[significant figure]]s mode, which had already been available as a compile-time option for the WP 34S and WP 31S.<ref name="Bit_2014"/><ref name="Bit_2015"/> Since 2021, the [[HP-42S]] simulator [[Free42]] version 3<!-- (aka [[Plus42]] version 1) --> can be enabled to support a dynamic RPN stack only limited by the amount of available memory instead of the classical 4-level stack. This feature was incorporated as a selectable function into the DM42 since firmware DMCP-3.21 / DM42-3.18.<ref>https://forum.swissmicros.com/viewtopic.php?f=16&t=2939<!-- UPDATE: DMCP-3.21 / DM42-3.18 2021-04-17 https://web.archive.org/web/20230923132306/https://forum.swissmicros.com/viewtopic.php?f=16&t=2939 --></ref><ref>https://forum.swissmicros.com/viewtopic.php?f=15&t=2845<!-- Free42 Version 3 2021-02-24 https://web.archive.org/web/20230923135327/https://forum.swissmicros.com/viewtopic.php?f=15&t=2845 --></ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)