Das Modul, das den Datentyp definiert und implementiert (es heiße etwa RationalNumbers), sollte noch Funktionen zum Konvertieren einer ganzen Zahl in einen rationalen Operanden und eines rationalen Operanden in z.B. eine REAL-Zahl zur Verfügung stellen. Da Operanden dividiert werden können, ist es nicht nötig, beliebige Brüche in einem einzigen Schritt zu erzeugen.
Die formatierte Ausgabe rationaler Zahlen soll über die Abstraktion PrintableObjects unterstützt werden.
Verwenden Sie Ihr Modul RationalNumbers, um eine Art Taschenrechner für rationale Zahlen zu implementieren. Dieses Programm kann als Null-Adreß-Maschine arbeiten, d.h., Befehle zum Füllen, Leeren und Anzeigen eines Operanden-Stacks sowie Operationen, die auf die jeweils obersten Stack-Elemente anzuwenden sind, akzeptieren. Um die Persistenz der Operanden zu demonstrieren, soll es ferner möglich sein, eine rationale Zahl in eine Datei zu schreiben oder von dort wieder einzulesen.