Vorlesung: Praxis der Funktionalen Programmierung | Index

Bemerkungen zu Interpretern

Eine Sprache interpretativ zu verarbeiten liegt nahe, sowohl historisch (LISP, BASIC, hugs) als auch praktisch: Tatsächlich "interpretiert" jede CPU die Maschinensprache.

Auch für selbst gebastelte domainspezifische Sprachen (z. B. Musik) ist das die einfachste Möglichkeit (die andere, oft noch bessere, sind eingebettete Sprachen, extra Bemerkungen dazu folgen später, jedenfalls spart man sich dann noch den Parser und den Typchecker).

Modernes funktionales Programmieren gestattet es, durch Monaden Programme stark zu modularisieren: man programmiert zunächst völlig generisch, und wählt erst später eine konkrete Monade, in der das Programm laufen soll. (Siehe Monad_Let_Eval: dieses Modul weiß nichts über m, außer daß es Instanz von MonadPlus und MonadZero ist.)

Was man in Haskell im Moment vermißt, ist eine bequeme Art, Kombinationen von Monaden hinzuschreiben. Siehe Parsermonade, das ist eine Kombination von Zustands- und Listenmonade, die möchte man eigentlich direkt so angeben. Das führt wieder zu polytypic programming (Johan Jeuring et al).


best viewed with any browser


http://www.informatik.uni-leipzig.de/~joe/ mailto:joe@informatik.uni-leipzig.de