During my time working as research assistant, I was mainly interested in the integration of functional and logic languages. As a student I started implementing the first prototype of the functional logic language Curry and also got involved in some design issues of this language.
Curry is lazy functional logic language which was originally designed back in 1996/97. Since then a few things have changed and many new concepts were added. Today, Curry offers a variety of modern features of functional and logic languages, e.g. a polymorphic type system, Monadic I/O, modules, constraints, higher-order and non-deterministic functions, encapsulated search and libraries for communication, distributed programming and programming of HTML, CGI and graphical user interfaces.
The topic of my diploma thesis was the integration of Encapsulated Search into Curry which was adapted from the language Oz.
After my diploma, I was working on a DFG project in the research group Michael Hanus who is one of the fathers and the main developer of Curry.
I studied and developed analysis methods for functional logic languages. In this field, still a lot work needs to be done. Although many analyses exist for functional and for logic languages, their adaption to the functional logic framework is often not trivial. Sometimes completely new analyses are neccessary, e.g. the non-determinism analysis, which I've developed. I was also involved in some research effort to adapt program transformations to functional logic languages. See the publications below for further details.
Additionally, I was dealing with implementation issues of Curry. We tried out several implementation approaches and have a quite complete implementation available today, which is called PAKCS and has been programmed by people from Michael Hanus research group and from the Portland State University.
There are some other functional logic languages around the world (the list below is not a complete one!). Most of them are based either on residuation or on narrowing, while Curry unifies the two concepts. Unfortunately, the development of many of these languages has been more or less stopped (*).
ALF * narrowing-based Babel * narrowing-based Escher * residuation-based Life * residuation-based Mercury mode-based Oz constraint language, residuation-based Toy narrowing-based
Some of the researchers who I've been working with or who work in the field of functional logic programming:
Elvira Albert UPV, Spain Maria Alpuente UPV, Spain Sergio Antoy PDX, USA Rachid Echahed IMAG, France Santiago Escobar UPV, Spain Cesar Ferri UPV, Spain Michael Hanus CAU Kiel, Germany Herbert Kuchen University of Münster, Germany John Lloyd ANU, Australia Rita Loogen University of Marburg, Germany Salvador Lucas UPV, Spain Wolfgang Lux University of Münster, Germany Bart Massey PDX, USA Wendelin Serwe IMAG, France German Vidal UPV, Spain
- An Implementation of Narrowing Strategies
(with Sergio Antoy, Bart Massey and Michael Hanus) © ACM Press
3rd International ACM SIGPLAN Conference on Principle and Practice of Declarative Programming (PPDP'01),
ACM Press, 2001
Available: Abstract Postscript BibTeX entry Slides
- Improving Functional Logic Programs by Difference-Lists
(with Elvira Albert, Cesar Ferri and German Vidal) © Springer-Verlag
6th Asian Computing Science Conference (ASIAN'2000)
Springer LNCS 1961, 2000
Available: Abstract Postscript BibTeX entry Slides
- Type-based Nondeterminism Checking in Functional Logic Programs
(with Michael Hanus) © ACM Press
2nd International ACM SIGPLAN Conference on Principle and Practice of Declarative Programming (PPDP'2000),
ACM Press, 2000
Available: Abstract Postscript BibTeX entry Slides
- Controlling Search in Declarative Programs
(with Michael Hanus) © Springer-Verlag
Joint International Symposium PLILP/ALP'98,
Springer LNCS 1490, 1998
Available: Abstract Postscript BibTeX entry Slides
To be completed
- Eingekapselte Suchverfahren für logisch-funktionale Programmiersprachen
Diploma thesis, 1997
Available (german only): Postscript