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
RPL (programming language)
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!
{{Short description|Handheld calculator operating system}} {{About||the programming language for the Commodore PET/CBM computers|Reverse Polish Language|the compiled database programming language|Real-time Programming Language}} {{Use dmy dates|date=April 2019|cs1-dates=y}} {{Use list-defined references|date=October 2023}} {{Infobox programming language | name = RPL | logo = | paradigm = [[Concatenative programming|Concatenative]] ([[stack-oriented programming language|stack-based]]),<ref name="Joy_2020"/> [[structured programming|structured]] | year = 1984<!-- development start --> (1986<!-- first products using it -->) | designer = [[Hewlett-Packard]] | developer = | latest_release_version = <!-- X.Y.Z/{{release date|df=yes|YYYY|MM|DD}} --> | latest_release_date = 2012-04-26<!-- HP 50g 2.16 --><ref name="HP_4"/><ref name="HP_7"/><ref name="HP_5"/><ref name="HP_6"/> | discontinued = 2015<!-- HP 50g --> | typing = | implementations = | dialects = System RPL, User RPL | influenced_by = [[Reverse Polish Notation|RPN]], [[Forth (programming language)|Forth]], [[Lisp (programming language)|Lisp]]<ref name="HPJ38"/> | influenced = | operating_system = [[Hewlett-Packard|HP]] [[calculator]]s | license = | website = | file_ext = }} [[File:HP48G.jpg | thumb | 220x124px | right | HP 48G calculator, uses RPL ]] '''RPL'''{{ref|rpl_acronym_note_1}} is a [[calculator|handheld calculator]] operating system and application [[programming language]] used on [[Hewlett-Packard]]'s scientific graphing [[Reverse Polish Notation|RPN]] (Reverse Polish Notation) calculators of the [[HP-28 series|HP 28]], [[HP 48 series|48]], [[HP 49 series|49]] and [[HP 50g|50]] series, but it is also usable on non-RPN calculators, such as the [[HP 38G|38]], [[HP 39/40 series|39 and 40]] series. Internally, it was also utilized by the [[HP-17B|17B]], [[HP-18C|18C]], [[HP-19B|19B]] and [[HP-27S|27S]].<ref name="RPLMAN"/> RPL is a [[structured programming]] language based on RPN, but equally capable of processing [[infix notation|algebraic]] expressions and formulae, implemented as a [[threaded code|threaded interpreter]].<ref name="RPL3"/> RPL has many similarities to [[Forth (programming language)|Forth]], both languages being [[stack-oriented programming language|stack]]-based, as well as the list-based [[LISP]]. Contrary to previous HP RPN calculators, which had a fixed [[4-level RPN|four-level stack]], the [[dynamic RPN stack|dynamic stack]] used by RPL is only limited by available [[random-access memory|RAM]], with the calculator displaying an error message when running out of memory rather than silently dropping arguments off the stack as in fixed-sized RPN stacks.<ref name="Wessman_2016"/> RPL originated from HP's [[Corvallis, Oregon]] development facility in 1984 as a replacement for the previous practice of implementing the [[operating systems]] of calculators in [[assembly language]].<ref name="RPLMAN"/> The first calculator utilizing it internally was the HP-18C and the first calculator making it available to users was the HP-28C, both from 1986.<ref name="Wickes_1987"/><ref name="RPLMAN"/> The last pocket calculator supporting RPL, the HP 50g, was discontinued in 2015.<ref name="Kuperus_2015_1"/><ref name="Kuperus_2015_2"/><ref name="Wessman_2015"/> However,<!-- an [[Mobile app|app]] is available for [[Android (operating system)|Android]], go49gp[https://play.google.com/store/apps/details?id=o2s.emul.hp49gp&hl=en_US], which emulates the HP 49g+/50g and will run RPL programs. --> multiple emulators that can emulate HP's RPL calculators exist that run on a range of operating systems, and devices, including iOS and Android smartphones. {{anchor|newRPL|DB48X}}There are also a number of community projects to recreate and extend RPL on newer calculators, like [[newRPL]]<ref name="Lapilli_2014_1"/><ref name="Lapilli_2021"/> or [[DB48X]],<ref name="deDinechin_2022"/><ref name="deDinechin_2023"/> which may add features or improve performance.<ref name="Lapilli_2014_2"/> ==Variants== The internal low- to medium-level variant of RPL, called '''[[HP 49 series#Programming|System RPL]]''' (or '''SysRPL''') is used on some earlier HP calculators as well as the aforementioned ones, as part of their [[operating system]] implementation language. In the HP 48 series this variant of RPL is not accessible to the calculator user without the use of external tools, but in the HP 49/50 series there is a compiler built into ROM to use SysRPL. It is possible to cause a serious crash while coding in SysRPL, so caution must be used while using it. The high-level '''User RPL''' (or '''UserRPL''') version of the language is available on said graphing calculators for developing textual as well as graphical application programs. All UserRPL programs are internally represented as SysRPL programs, but use only a safe subset of the available SysRPL commands. The error checking that is a part of UserRPL commands, however, makes UserRPL programs noticeably slower than equivalent SysRPL programs. The UserRPL command SYSEVAL tells the calculator to process designated parts of a UserRPL program as SysRPL code. ==Control blocks== RPL control blocks are not strictly [[postfix notation|postfix]]. Although there are some notable exceptions, the control block structures appear as they would in a standard infix language. The calculator manages this by allowing the implementation of these blocks to skip ahead in the program stream as necessary. ===Conditional statements=== ====IF/THEN/ELSE/END==== RPL supports basic conditional testing through the IF/THEN/ELSE structure. The basic syntax of this block is: IF condition THEN if-true [ELSE if-false] END The following example tests to see if the number at the bottom of the stack is "1" and, if so, replaces it with "Equal to one": « IF 1 == THEN "Equal to one" END » The IF construct evaluates the condition then tests the bottom of the stack for the result. As a result, RPL can optionally support FORTH-style IF blocks, allowing the condition to be determined before the block. By leaving the condition empty, the IF statement will not make any changes to the stack during the condition execution and will use the existing result at the bottom of the stack for the test: « 1 == IF THEN "Equal to one" END » ====IFT/IFTE==== Postfix conditional testing may be accomplished by using the IFT ("if-then") and IFTE ("if-then-else") functions. IFT and IFTE pop two or three commands off the stack, respectively. The topmost value is evaluated as a Boolean and, if true, the second topmost value is pushed back on the stack. IFTE allows a third "else" value that will be pushed back on the stack if the Boolean is false. The following example uses the IFT function to pop an object from the bottom of the stack and, if it is equal to 1, replaces it with "One": « 1 == "One" IFT » The following example uses the IFTE function to pop an object from the bottom of the stack and, if it is equal to 1, replaces it with "One". If it does not equal 1, it replaces it with the string "Not one": « 1 == "One" "Not one" IFTE » IFT and IFTE will evaluate a program block given as one of its arguments, allowing a more compact form of conditional logic than an IF/THEN/ELSE/END structure. The following example pops an object from the bottom of the stack, and replaces it with "One", "Less", or "More", depending on whether it is equal to, less than, or greater than 1. « DUP 1 == « DROP "One" » « 1 < "Less" "More" IFTE » IFTE » ====CASE/THEN/END==== To support more complex conditional logic, RPL provides the CASE/THEN/END structure for handling multiple exclusive tests. Only one of the branches within the CASE statement will be executed. The basic syntax of this block is: CASE condition_1 THEN if-condition_1 END ... condition_n THEN if-condition_n END if-none END The following code illustrates the use of a CASE/THEN/END block. Given a letter at the bottom of the stack, it replaces it with its string equivalent or "Unknown letter": « CASE DUP "A" == THEN "Alpha" END DUP "B" == THEN "Beta" END DUP "G" == THEN "Gamma" END "Unknown letter" END SWAP DROP @ Get rid of the original letter » This code is identical to the following nested IF/THEN/ELSE/END block equivalent: « IF DUP "A" == THEN "Alpha" ELSE IF DUP "B" == THEN "Beta" ELSE IF DUP "G" == THEN "Gamma" ELSE "Unknown letter" END END END SWAP DROP @ Get rid of the original letter » ===Looping statements=== ====FOR/NEXT==== RPL provides a FOR/NEXT statement for looping from one index to another. The index for the loop is stored in a temporary local variable that can be accessed in the loop. The syntax of the FOR/NEXT block is: index_from index_to FOR variable_name loop_statement NEXT The following example uses the FOR loop to sum the numbers from 1 to 10. The index variable of the FOR loop is "I": « 0 @ Start with zero on the stack 1 10 @ Loop from 1 to 10 FOR I @ "I" is the local variable I + @ Add "I" to the running total NEXT @ Repeat... » ====START/NEXT==== The START/NEXT block is used for a simple block that runs from a start index to an end index. Unlike the FOR/NEXT loop, the looping variable is not available. The syntax of the START/NEXT block is: index_from index_to START loop_statement NEXT ====FOR/STEP and START/STEP==== Both FOR/NEXT and START/NEXT support a user-defined step increment. By replacing the terminating NEXT keyword with an increment and the STEP keyword, the loop variable will be incremented or decremented by a different value than the default of +1. For instance, the following loop steps back from 10 to 2 by decrementing the loop index by 2: « 10 2 START -2 STEP » ====WHILE/REPEAT/END==== The WHILE/REPEAT/END block in RPL supports an indefinite loop with the condition test at the start of the loop. The syntax of the WHILE/REPEAT/END block is: WHILE condition REPEAT loop_statement END ====DO/UNTIL/END==== The DO/UNTIL/END block in RPL supports an indefinite loop with the condition test at the end of the loop. The syntax of the DO/UNTIL/END block is: DO loop_statement UNTIL condition END ==See also== * [[A Programming Language]] (APL) * [[FOCAL keystroke programming]] * [[HPL (programming language)|High Performance Language]] (HPL) * [[HP trigraph]]s * [[Prime Programming Language]] (PPL) * [[RPL character set]] == Notes == :1.{{note|rpl_acronym_note_1}} "RPL" is derived from '''Reverse Polish Lisp''' according to its original developers,<ref name="Wickes_1988"/><ref name="Wickes_1991"/><ref name="Schoorl_2000"/><ref name="FAQ48"/><ref name="Nelson_2012"/><ref name="Jedrzejowicz_1996"/> while for a short time in 1987 HP marketing attempted to coin the [[backronym]] '''ROM-based Procedural Language''' for it.<ref name="HPJ38"/><ref name="Jedrzejowicz_1996"/><ref name="HP_2007"/> In addition, the RPL initials are sometimes incorrectly interpreted as Reverse Polish Logic or [[Reverse Polish Language]].<ref>{{cite web |url=https://www.hpcalc.org/hp48/docs/hpedia/ |title=HPedia: The HP Calculator Encyclopedia |author-last1=Rechlin |author-first1=Eric |author-last2=Marangon |author-first2=Carlos |website=www.hpcalc.org |access-date=2020-04-20}}</ref> ==References== {{reflist|refs= <ref name="Joy_2020">{{cite web |url=https://www.hpmuseum.org/forum/showthread.php?mode=linear&tid=15509&pid=135732 |title=The Joy of Programming? |publisher=Museum of HP Calculators |date=2020 |archive-url=https://web.archive.org/web/20211203131528/https://www.hpmuseum.org/forum/showthread.php?mode=linear&tid=15509&pid=135732 |archive-date=2021-12-03}}</ref> <ref name="HP_4">http://h41268.www4.hp.com/live/index_e.aspx?qid=20709&jumpid=va_r11363_us/en/any/tsg/pl_ot_ob_ds_pd/calculatoremulators_cc/dt{{dead link|date=April 2018 |bot=InternetArchiveBot|fix-attempted=yes}}</ref> <ref name="HP_7">http://www.calculatrices-hp.com/index.php?page=emulateurs<!-- https://web.archive.org/web/20170917223308/http://www.calculatrices-hp.com/index.php?page=emulateurs --></ref> <ref name="HP_5">{{cite web |url=http://www.hpmuseum.org/forum/thread-4405-post-39600.html |title=Emulator of HP 50g with #2.16 ROM}}</ref> <ref name="HP_6">http://www.calculatrices-hp.com/uploads/emulateurs/HP50gVirtualCalculatorSetup_3_1_30.zip<!-- https://web.archive.org/web/20170917095533/http://www.calculatrices-hp.com/uploads/emulateurs/HP50gVirtualCalculatorSetup_3_1_30.zip --></ref> <ref name="HPJ38">{{cite journal |title=Computation for Handheld Calculators |author-last=Patton |author-first=Charles M. |journal=[[Hewlett-Packard Journal]] |publisher=[[Hewlett-Packard Company]] |location=Palo Alto, California, USA |date=August 1987 |volume=38 |issue=8 |pages=21–25 |url=http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1987-08.pdf |access-date=2015-09-12 |archive-date=2011-12-06 |archive-url=https://web.archive.org/web/20111206105511/http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1987-08.pdf |url-status=dead }}</ref> <ref name="Wickes_1988">{{cite conference |title=RPL: A Mathematical<!-- also seen as: "Mathematics". Check actual publication's cover. --> Control Language |author-last=Wickes |author-first=William C. |editor-first=Lawrence P. |editor-last=Forsely |date=1988-10-01 |orig-date=14–18 June 1988 |conference=Proceedings of the 1988 Rochester Forth Conference: Programming Environments |volume=8 |publisher=Institute for Applied Forth Research, Inc., [[University of Rochester]] |location=Rochester, New York, USA |isbn=978-0-91459308-9 |oclc=839704944 |url=https://dl.acm.org/doi/abs/10.5555/534949 |pages=27–32 |quote=Several existing operating systems and languages were considered, but none could meet all of the design objectives. A new system was therefore developed, which merges the threaded interpretation of [[Forth (programming language)|Forth]] with the functional approach of [[Lisp (programming language)|Lisp]]. The resulting operating system, known unofficially as RPL (for Reverse-Polish Lisp), made its first public appearance in June of 1986 in the [[HP-18C]] Business Consultant calculator.}} (NB. This title is often cited as "RPL: A Mathematics Control Language". An excerpt is available at: [https://web.archive.org/web/20230328115142/https://www.hpcalc.org/details/1743][https://web.archive.org/web/20220419184811/https://www.hpcalc.org/hp48/docs/programming/rplman.zip])</ref> <ref name="Schoorl_2000">{{cite web |title=HP48 Frequently Asked Questions List |author-first=André |author-last=Schoorl |date=2000-04-04 |pages=69 <!-- date=2015 |editor-first=Eric |editor-last=Rechlin | --> |publisher=HP Calculator Archive |orig-date=1997 |url=http://www.hpcalc.org/hp48/docs/faq/48faq-pdf.zip |access-date=2015-09-12}}</ref> <ref name="FAQ48">{{cite web |title=I've heard the names RPL, Saturn, STAR, GL etc... What are they? - RPL |work=FAQ: 2 of 4 - Hardware, Programs, and Programming |id=8.1. |publisher=comp.sys.hp48 |date=2000-04-14 |version=4.62 |url=http://www.faqs.org/faqs/hp/hp48-faq/part2/ |access-date=2015-09-12}}</ref> <ref name="Nelson_2012">{{cite journal |title=HP RPN Evolves |author-first=Richard J. |author-last=Nelson |publisher=[[Hewlett-Packard]] |journal=HP Solve |issue=27 |date=2012-04-04 |pages=30–32 |url=http://h20331.www2.hp.com/hpsub/downloads/HP_Calculator_eNL_04_April_2012%20(2).pdf |access-date=2015-09-12}}</ref> <ref name="Jedrzejowicz_1996">{{cite book |title=A Guide to HP Handheld Calculators and Computers |author-first=Włodzimierz "Włodek" Anthony Christopher |author-last=Mier-Jędrzejowicz |date=July 1991 |publisher=HHC 2011 |edition=5 |isbn=978-1-88884030-8 |id=1888840307 |quote=RPL stands for Reverse Polish Lisp - it combined the RPN calculator language of earlier models with features of the [[Lisp (programming language)|Lisp]] and [[Forth (programming language)|Forth]] programming languages. For a time HP explained the letters RPL as an acronym for "ROM-based Procedural Language".}}</ref> <ref name="HP_2007">{{cite web |title=HP Celebrates 35 Years of Handheld Calculator Innovation |publisher=[[Hewlett-Packard Development Company, L.P.]] |date=2007 |url=http://h20331.www2.hp.com/Hpsub/cache/457008-0-0-225-121.html |archive-url=https://web.archive.org/web/20070317053857/http://h20331.www2.hp.com/Hpsub/cache/457008-0-0-225-121.html |archive-date=2007-03-17 |access-date=2015-09-13 |quote=1987: [[HP-28C]]: First full RPL calculator: In the late 1980s, HP developed a new programming language for its new series of extremely powerful calculators. By combining elements of RPN, [[Lisp (programming language)|Lisp]] and [[Forth (programming language)|Forth]], HP came up with a language called RPL (or ROM-based Procedural Language).}}</ref> <ref name="RPL3">{{cite web |title=What is RPL? |author-first=Joseph K. |author-last=Horn |url=http://www.hpcalc.org/hp48/docs/programming/rpl3.txt |access-date=2017-09-17 |url-status=live |archive-url=https://web.archive.org/web/20170917221524/http://www.hpcalc.org/hp48/docs/programming/rpl3.txt |archive-date=2017-09-17}}</ref> <ref name="RPLMAN">{{cite web |title=RPLMan from Goodies Disk 4 |author=Hewlett-Packard |author-link=Hewlett-Packard |format=RPLMAN.ZIP |url=http://www.hpcalc.org/details.php?id=1743<!-- http://www.hpcalc.org/hp48/docs/programming/rplman.zip--> |access-date=2015-09-12}}</ref> <ref name="Wickes_1987">{{cite journal |title=The HP-28C: An Insider's Perspective |author-first=William C. |author-last=Wickes |journal=HPX Exchange |volume=1 |number=1 |date=January–February 1987 |pages= |url=}} [https://web.archive.org/web/20231006184209/https://www.hpmuseum.org/forum/thread-1140.html]</ref> <ref name="Wickes_1991">{{cite web |title=RPL stands for Reverse Polish Lisp |author-first=William C. |author-last=Wickes |publisher=www.hpcalc.org |date=1991-03-11 |url=http://www.hpcalc.org/hp48/docs/programming/rpl.txt |access-date=2015-09-12 |quote=RPL stands for Reverse Polish Lisp. In the early days of RPL development, we got tired of calling the unnamed system "the new system", and one of the development team came up with "RPL", both as a play on "RPN" which has been the loved/hated hallmark of HP calcs forever, and as an accurate indication of the derivation of the language from [[Forth (programming language)|Forth]] and [[Lisp (programming language)|Lisp]].<br />RPL was never particularly intended to be a public term; at the time of the [[HP Journal]] article (August 1987) on the [[HP-28 series|HP 28C]] there was an attempt to create a less whimsical name--hence "ROM-based procedural language", which preserved the initials but had a more dignified sound. The development team never calls it anything but (the initials) RPL. You can choose either of the two full-word versions that you prefer. Or how about "Rich People's Language?" Bill Wickes, HP Corvallis.}}</ref> <ref name="Kuperus_2015_1">{{cite web |title=HP 50g: End of an era |author-first=Klaas |author-last=Kuperus |publisher=Moravia |date=2015-03-04 |url=http://forum.hp-prime.de/discussion/787/hp-50g-end-of-an-era |url-status=dead |archive-url=https://web.archive.org/web/20150402112232/http://forum.hp-prime.de/discussion/787/hp-50g-end-of-an-era |archive-date=2015-04-02}}</ref> <ref name="Kuperus_2015_2">{{cite web |title=HP 50g not so good news? |author-first=Klaas |author-last=Kuperus |publisher=Moravia |date=2015-03-06 |url=http://www.hpmuseum.org/forum/thread-3265-post-29694.html#pid29694 |access-date=2016-01-01}}</ref> <ref name="Wessman_2015">{{cite web |title=Windows 10 won't allow HP 50g USB drivers to be installed |author-first=Timothy "Tim" James |author-last=Wessman |work=MoHPC - The Museum of HP Calculators |date=2015-12-26 |url=http://www.hpmuseum.org/forum/thread-5386-post-48114.html#pid48114 |access-date=2016-01-01}}</ref> <ref name="Wessman_2016">{{cite web |title=What to do with stack overflow OBJ->/LIST->? |author-first=Timothy "Tim" James |author-last=Wessman |date=2016-06-21 |orig-date=2016-06-20 |work=MoHPC - The Museum of HP Calculators |url=https://www.hpmuseum.org/forum/printthread.php?tid=6436 |access-date=2023-09-24 |url-status=live |archive-url=https://web.archive.org/web/20230924101041/https://www.hpmuseum.org/forum/printthread.php?tid=6436 |archive-date=2023-09-24}}</ref> <ref name="deDinechin_2022">{{cite web |title=DB48X on DM42 - RPL runtime for the DM42 calculator, in the spirit of HP48/49/50 |author-first=Christophe |author-last=de Dinechin |author-link=Christophe de Dinechin |work=DB48X |date=2022 |url=https://github.com/c3d/DB48X-on-DM42 |access-date=2023-10-23 |url-status=live |archive-url=https://web.archive.org/web/20231103035417/https://github.com/c3d/DB48X-on-DM42 |archive-date=2023-11-03}}</ref> <ref name="deDinechin_2023">{{cite web |title=Reviving Reverse Polish Lisp - Building an open-source HP48-like calculator |author-first=Christophe |author-last=de Dinechin |author-link=Christophe de Dinechin |date=2023-02-03<!-- /04 --> |work=[[FOSDEM]] |url=https://archive.fosdem.org/2023/schedule/event/reversepolishlisp/ |access-date=2023-10-03 |url-status=live |archive-url=https://web.archive.org/web/20231003174447/https://archive.fosdem.org/2023/schedule/event/reversepolishlisp/ |archive-date=2023-10-03}} (NB. An improved derivative of RPL called DB48X for the [[SwissMicros]] [[DM42]] and [[DM32]].)</ref> <ref name="Lapilli_2014_1">{{cite web |title=newRPL |author-first=Claudio Daniel |author-last=Lapilli |date=2014-01-03 |url=http://hpgcc3.org/projects/newrpl |access-date=2015-09-12}} [https://newrpl.wiki.hpgcc3.org/doku.php?id=start] (an open source RPL derivative for the [[HP 50g]] and [[HP 49g+]], the [[HP 40gs]], [[HP 39gs]] and [[hp 39g+]]<!-- http://www.hpmuseum.org/forum/thread-8290.html --> as well as the [[HP Prime]])</ref> <ref name="Lapilli_2014_2">{{cite web |title=N-Queens on 50g (RPL language) |author-first=Claudio Daniel |author-last=Lapilli |work=MoHPC - The Museum of HP Calculators |date=2014-10-31 |url=https://www.hpmuseum.org/forum/thread-2368-post-20947.html?highlight=newRPL#pid20947 |access-date=2023-10-23 |url-status=live |archive-url=https://web.archive.org/web/20231103034655/https://www.hpmuseum.org/forum/thread-2368-post-20947.html?highlight=newRPL#pid20947 |archive-date=2023-11-03}}</ref> <ref name="Lapilli_2021">{{cite web |title=newRPL Documentation Project |author-first=Claudio Daniel |author-last=Lapilli |work=newRPL |date=2021-07-23 |orig-date=2014 |url=https://newrpl.wiki.hpgcc3.org/doku.php |access-date=2023-10-23 |url-status=live |archive-url=https://web.archive.org/web/20231103034753/https://newrpl.wiki.hpgcc3.org/doku.php |archive-date=2023-11-03}}</ref> }} ==Further reading== * {{cite book |title=HP 48G Series – User's Guide (UG) |publisher=[[Hewlett-Packard]] |edition=8th |date=December 1994 |id=HP 00048-90126, (00048-90104) |orig-date=1993<!-- edition 1 (1993-05) --> |url=http://www.hpcalc.org/details.php?id=3937 |access-date=2015-09-06 |url-status=live |archive-url=https://web.archive.org/web/20160806145719/http://www.hpcalc.org/details.php?id=3937 |archive-date=2016-08-06}} [http://www.hpcalc.org/hp48/docs/misc/hp48gug.zip<!-- https://web.archive.org/web/20160528071119/http://www.hpcalc.org/hp48/docs/misc/hp48gug.zip -->] * {{cite book |title=HP 48G Series – Advanced User's Reference Manual (AUR) |publisher=[[Hewlett-Packard]] |edition=4th |date=December 1994 |id=HP 00048-90136, 0-88698-01574-2 |orig-date=1993<!-- edition 1 (1993-07) --> |url=http://www.hpcalc.org/details.php?id=6036 |access-date=2015-09-06 |url-status=live |archive-url=https://web.archive.org/web/20160806145723/http://www.hpcalc.org/details.php?id=6036 |archive-date=2016-08-06}} [http://www.hpcalc.org/hp48/docs/misc/hp48gaur.zip<!-- https://web.archive.org/web/20160317061852/http://www.hpcalc.org/hp48/docs/misc/hp48gaur.zip -->] * {{cite book |title=HP 50g graphing calculator user's guide (UG) |publisher=[[Hewlett-Packard]] |edition=1 |date=April 2006 |id=HP F2229AA-90006 |url=http://www.hpcalc.org/details.php?id=6512 |access-date=2015-09-06}} * {{cite book |title=HP 50g / 49g+ / 48gII graphing calculator advanced user's reference manual (AUR) |publisher=[[Hewlett-Packard]] |edition=2 |date=2009-07-14 |orig-date=2005<!-- first published: Edition 1 (2005–09) --> |id=HP F2228-90010 |url=http://www.hpcalc.org/details.php?id=7141 |access-date=2015-09-06}} * {{cite book |title=Programming in System RPL |author-first1=Eduardo de Mattos |author-last1=Kalinowski |author-first2=Carsten |author-last2=Dominik |date=2002-04-24 |edition=2 |orig-date=1998-07-12 |url=http://isa.umh.es/calc/progsysrpl.pdf |access-date=2016-08-16 |url-status=live |archive-url=https://web.archive.org/web/20160114100225/http://isa.umh.es/calc/progsysrpl.pdf |archive-date=2016-01-14}} (Older version: [http://www.hpcalc.org/details.php?id=1758<!-- 2000-03-29 -->]) * {{cite book |title=An Introduction to HP 48 System RPL and Assembly Language Programming |author-first=James |author-last=Donnelly |editor-first=Eric |editor-last=Rechlin |date=2009-03-01 |url=http://www.hpcalc.org/details.php?id=7114 |access-date=2015-09-07}} ==External links== * {{cite web |title=HP 49/50 Programming Documentation Files |author-first=Eric |author-last=Rechlin |publisher=HP Calculator Archive |date=2015 |orig-date=1997 |url=http://www.hpcalc.org/hp49/docs/programming/ |access-date=2015-09-12}} * {{cite web |title=HP 48 Programming Documentation Files |author-first=Eric |author-last=Rechlin |publisher=HP Calculator Archive |date=2015 |orig-date=1997 |url=http://www.hpcalc.org/hp48/docs/programming/ |access-date=2015-09-12}} * {{cite web |title=RPL |author-first=David G. |author-last=Hicks |date=2013 |orig-date=1995 |publisher=The Museum of HP Calculators (MoHPC) |url=http://www.hpmuseum.org/rpl.htm |access-date=2015-09-12 |url-status=live |archive-url=https://web.archive.org/web/20230930193241/https://www.hpmuseum.org/rpl.htm |archive-date=2023-09-30}} * {{anchor|RPL/2}}{{cite web |title=RPL/2 - a new Reverse Polish Lisp |author-first=Joël |author-last=Bertrand |date=2015 |orig-date=2009 |url=http://www.rpl2.net |access-date=2015-09-12}} (a GPL licensed RPL clone) * {{anchor|rpn}}{{cite web |title=rpn - opensource implementation of RPL |author-first=Louis |author-last=Rubet |website=[[GitHub]] |date=2017-07-01 |url=https://github.com/louisrubet/rpn |access-date=2015-09-12}} (Open source implementation of RPL with arbitrary precision) * {{anchor|MyRPL}}{{cite web |title=MyRPL - Union between HP41 and HP48 languages |author-first=Alvaro Gerardo |author-last=Suárez |date=2018-05-01 |url=https://sim41.webcindario.com |access-date=2018-05-04 |url-status=live |archive-url=https://web.archive.org/web/20231003185922/https://sim41.webcindario.com/ |archive-date=2023-10-03}} (Mixed RPL (HP48) and FOCAL (HP41) language) {{DEFAULTSORT:Rpl (Programming Language)}} [[Category:Stack-oriented programming languages]] [[Category:Graphing calculator software|*Rpl]] [[Category:HP calculators|RPL]] [[Category:Lisp programming language family]]
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)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Anchor
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Note
(
edit
)
Template:Ref
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Use list-defined references
(
edit
)