Programmiersprachen
LVA 185.208, VL 2.0, 2007 S

2. Übungsaufgabe

Entwickeln Sie in ML oder Haskell (oder einer anderen stark typisierten funktionalen Programmiersprache) ein Programm zur Verwaltung von Software (z.B. Texte, Filme, Musikstücke, Computerspiele, etc.) auf unterschiedlichen Datenträgern. Datenträger können physisch sein (wie Buch, CD, DVD, Festplatte und Speicherkarte) oder abstrakt (wie Web-Adresse oder Adresse innerhalb eines anderen Datenträgers). Von jeder Software kann es mehrere Versionen geben, und jede Version kann auf mehreren Datenträgern gespeichert sein. Daten wie Titel, Autoren und Entstehungszeit sollten für jede Software (sofern bekannt) angegeben sein, weitere Kommentare können dazugegeben werden. Implementieren Sie geeignete Suchmöglichkeiten nach Software wenn solche Daten bekannt sind. Jeder physische Datenträger hat einen eindeutigen Eigentümer und kann verborgt sein. Es soll möglich sein, Datenträger zu kaufen bzw. zu verkaufen (also den Eigentümer zu ändern) und auszuborgen bzw. an andere zu verborgen wobei entsprechende Daten erfasst werden sollen. Die Daten sollen beim absichtlichen Beenden des Programms nicht verloren gehen, sondern persistent (in einer Datei) gespeichert werden. Die Datenmengen werden klein bleiben. Es ist daher problemlos möglich, alle Daten beim Programmstart einzulesen und vor Beendigung neu zu schreiben.

Bei dieser Aufgabe kommt es darauf an, Daten zu verwalten. Dies scheint in Widerspruch zu modernen funktionalen Sprachen zu stehen. Bei genauerer Betrachtung ergeben sich aber viele Lösungsmöglichkeiten.

Auf dem Übungsrechner (b3) sind Objective Caml als ML-Interpreter bzw. Compiler und Hugs als Haskell-Interpreter installiert. Umfangreiche Informationen zu Objective Caml (z.B. ein Manual und Interpreter bzw. Compiler zum Herunterladen) finden Sie unter http://caml.inria.fr/. Falls Sie Ihr Programm in Objective Caml schreiben, schränken Sie sich bitte auf Standard-ML ein. Verzichten Sie auf die Verwendung der objektorientierten Erweiterungen.

Informationen zu Haskell (beispielsweise die Sprachdefinition) finden Sie unter http://www.haskell.org/. Wenn Sie die Software selbst installieren haben Sie die Wahl zwischen GHC und Hugs. GHC (http://www.haskell.org/ghc/) is ein eher umfangreicheres System, das auch für größere Anwendungen geeignet ist, aber daher vielleicht auch einen etwas höheren Einlernaufwand mit sich bringt. Der GHC-Compiler produziert relativ effizienten Code. Hugs (http://www.haskell.org/hugs/) ist ein im Vergleich zu GHC einfacheres auf einem Interpreter basierendes System, das für die Lösung dieser Aufgabe vollkommen ausreicht.

Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
            Prog.spr.
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
            FOOP
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
vorige Aufgabe
nächste Aufgabe
Links:
Objective Caml
Haskell
Hugs
GHC
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2007-05-21 (Puntigam)