RPNCalc-eksemplet er et kode-eksempel i fire deler, som illustrerer vesentlige teknikker i prosedyreorientert programmering.
Dette kode-eksemplet handler om en såkalt RPN-kalkulator. RPN står for Reverse Polish Notation og brukes om kalkulatorer der operander (verdier) angis først og så operatoren (operasjoner), i motsetning til den vanlige infix-notasjonen med operatorer i mellom operandene. For å regne ut 1 + 2 så angis altså 1 og 2 først og så +, som gir resultatet 3. For å bygge videre på resultatet, angir en nye operander og operatorer, f.eks. regnes (1 + 2) * 3 ut ved å angi sekvensen 1 2 + 3 *. Implementasjonen er svært enkelt, en legger bare operandene på en stakk ettersom de angis, og operatorene fjerner og bruker disse og legger resultatet tilbake.
Dette kode-eksemplet utvikles i fire trinn, som følger:
- rpncalc1.py illustrerer enkle kontrollstrukturer og bruk av variabler for å referere til enkle verdier og datastrukturer.
- rpncalc2.py innfører funksjoner, for å gjøre koden ryddigere.
- rpncalc3.py utforsker alternative funksjoner som utnytter spesielle Python-teknikker, samt forbereder oppdeling av kalkulatoren i to deler.
- rpncalc4core.py og rpncalc4ui.py viser hvordan programmer kan deles i flere moduler, ved å dele kalkulatoren i én som håndterer stack-logikken og operasjonene og én del som håndterer kommunikasjonen med brukeren.