Logo des Instituts  
 aufwärts

Theoretische Informatik Labor   20.11.2014

Aufgabe 3:  Schreiben Sie einen Compiler, der römische Zahlen in ihren Zahlenwert übersetzt.

Entwickeln Sie zunächst eine Grammatik in erweiterter Backus-Naur-Form (EBNF) für römische Zahlen, die sich für einen Recursive-Descent-Parser eignet. Programmieren Sie anschließend ein Modul RomanNumberCompiler, in dem Sie schulmäßig die Produktionen Ihrer Grammatik in ent­sprechende Funktionen umsetzen.

Testen Sie den Compiler mit den (zulässigen) Eingabe­wörtern DVI, XL, MIX, MCMLII.

 

Hinweis: Römische Zahlen bestehen aus einer Folge von Tausendern, Hundertern, Zehnern und Einern, wobei jede dieser Gruppen auch fehlen kann.

Die folgenden Zeichen­ketten sind die Einer, mit den zugehörigen Zahlenwerten 1, 2, ..., 9:

I, II, III, IV, V, VI, VII, VIII, IX

Die folgenden Zeichen­ketten sind die Zehner, mit den zugehörigen Zahlenwerten 10, 20, ..., 90:

X, XX, XXX, XL, L, LX, LXX, LXXX, XC

Die folgenden Zeichen­ketten sind die Hunderter, mit den zugehörigen Zahlenwerten 100, 200, ..., 900:

C, CC, CCC, CD, D, DC, DCC, DCCC, CM

Die folgenden Zeichen­ketten sind die Tausender, mit den zugehörigen Zahlenwerten 1000, 2000, 3000:

M, MM, MMM

 

 

 

up

 

homeH.W. Lang   Fachhochschule Flensburg   lang@fh-flensburg.de   Impressum   ©  
Valid HTML 4.01 Transitional