====== Applications ====== ==== SOL ==== SOL is a web-based system to support practical assignments of courses, e.g., it is applied in computer science courses at the [[http://www.informatik.uni-kiel.de/|University of Kiel]]. SOL provides web-based functionality for lectures, tutors (who correct assignments), and students. Lectures can structure courses into units that contain various assignments, e.g., multiple/single choice tests, gap texts, programming tasks etc. Students can submit their solutions to a learning unit which will be judged by tutors. Students can form smaller learning groups to solve their tasks. Moreover, SOL contains a message system to exchange information between students, tutors, and lectures. The complete system is implemented in Curry and exploits the various features of Curry, in particular, for [[http://www.informatik.uni-kiel.de/~mh/papers/JFLP04_dyn.html|database programming]] and [[http://www.informatik.uni-kiel.de/~mh/papers/PADL01.html|HTML programming]]. An [[http://www-ps.informatik.uni-kiel.de/sol07/|example installation]] can be found here For further details contact [[mh@informatik.uni-kiel.de|Michael Hanus]]. === Grappa === A graph language can be described with a graph grammar in a manner similar to a string grammar known from the theory of formal languages. Recently we have introduced the Haskell library **graph parser combinators**. Therewith, several graph parsers can be implemented quite conveniently. Unfortunately, it is quite complicated to realize a straightforward and reasonably efficient translation of so-called hyperedge replacement grammars (a context-free graph grammar formalism) to graph parsers. Problems are mainly caused by heavy non-determinism. Therefore, we have reimplemented our library in Curry. The Curry implementation provides two main benefits: Grammars can be translated to quite efficient parsers in a schematic way. Furthermore, parsers can be used as generators and for graph completion at the same time. We exploit these nice properties in the domain of diagram editors. Here, graph grammars are used to define the syntax of visual languages and graph completion appears to be very beneficial for the realization of powerful content assist. We have connected our framework to the diagram editor generator [[http://www.unibw.de/inf2/DiaGen |DiaGen]]. More information about our graph parsers can be found at our [[http://www.unibw.de/steffen.mazanek/forschung/grappa |project website]].