Functional Logic Programming



Course: 
Functional Logic Programming
Tutors: M. Rodríguez-Artalejo, F. López-Fraguas, Elvira Albert



Aims

Contents

  1. Computational Models
    1. Term Rewriting Systems [BN98,Vad02]
    2. Lazy Rewriting Strategies [BN98,Vad02]
    3. The rewriting logic CRWL  [Vad02,GHLR99]
    4. Goal resolution by narrowing [Vad02,MH94]
    5. Lazy narrowing strategies  [Vad02,GHLR99,MO98,AEH00]
  1. The TOY programming language
    1. Language features
    2. Programming Tools: Declarative debugging, etc.
    3. Implementation techniques
  1. The Curry programming language
    1. Computational model: NN + residuation [Han97a]
    2. New language features: encapsulated search, monadic IO [CurryTR]
    3. PAKCS [PAKCS00]
      • Executing Curry programs: Curry2Prolog, Curry2Java and TasteCurry
      • The module system
      • Curry Doc: A documentation tool [Han02]
    4. Applications
    5. Programming tools:

References


   

   
[AHV02] E. Albert, M. Hanus, G. Vidal. A practical partial evaluation scheme for multi-paradigm declarative languages. 
Journal of Functional and Logic Programming, 2002(1):1-34, March 2002.


[AV02] E. Albert and Germán Vidal. Symbolic profiling for multi-paradigm declarative languages.
In Logic-Based Program Synthesis and Transformation (Proc. of LOPSTR'01), pages 148--167. Springer LNCS 2372, 2002.
[Ant92]	S.Antoy. Definitional Trees. 
Proc.ALP'92, Springer LNCS 632, pp. 143--157, 1992.

[AEH00] S. Antoy, R. Echahed, and M. Hanus. A Needed Narrowing Strategy.
Journal of the ACM, Vol. 47 (4), pp. 776--822, July 2000.

[AH02] S. Antoy and M. Hanus. Functional logic design patterns.
In Proc. of the 6th International Symposium on Functional and Logic Programming (FLOPS 2002). Springer LNCS 2441, 2002.

[BN98] F. Baader and T. Nipkow. Term Rewriting and All That.
Cambridge University Press, 1998.

[CL99b] R. Caballero and F.J. López-Fraguas. A Functional Logic Perspective of Parsing.
Proc. FLOPS'99, Springer LNCS 1722, pp. 85--99, 1999.

[GHLR99]J.C. González-Moreno, M.T. Hortalá-González, F.J. López-Fraguas, and M. Rodríguez-Artalejo. An Approach to Declarative Programming based on a Rewriting Logic.
Journal of Logic Programming 40, pp. 47--87, 1999.

[GHLR01]J.C. González-Moreno, M.T. Hortalá-González, F.J. López-Fraguas, and M. Rodríguez-Artalejo. Polymorphic Types in Functional Logic Programming.
Journal of Functional and Logic Programming, Vol. 2001/S01 (special issue of selected papers contributed to FLOPS'99), pp. 1--71, 2001.

[Han94] M. Hanus. The Integration of Functions into Logic Programming: From Theory to Practice.
Journal of Logic Programming 19&20, pp. 583--628, 1994.

[Han97a]M. Hanus. A Unified Computation Model for Functional and Logic Programming.
Proc. POPL'97, ACM Press, pp. 80--93, 1997.

[Han97b]M. Hanus. Teaching Functional and Logic Programming with a Single Computation Model.
Proc. PLILP'97, Springer LNCS 1292, pp. 335--350, 1997.

[Han99] M. Hanus. Distributed programming in a multi-paradigm declarative language.
In Proc. of the International Conference on Principles and Practice of Declarative Programming (PPDP'99), pages 376--395. Springer LNCS 1702, 1999.

[CurryTR]M. Hanus (ed.). Curry: An Integrated Functional Logic Language.
Available at: http://www.informatik.uni-kiel.de/ mh/curry/, 1999.

[Han01] M. Hanus. High-level server side web scripting in curry.
In Proc. of the Third International Symposium on Practical Aspects of Declarative Languages (PADL'01). Springer LNCS 1990, 2001.

[Han02] M. Hanus. Currydoc: A documentation tool for declarative programs.
In Proc. of the 11th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2002), pages 225--228, Grado (Italy), 2002. Research Report UDMI/18/2002/RR, Universit`a degli Studi di Udine.

[PAKCS00]M. Hanus, S. Antoy, J. Koj, R. Sadre, and F. Steiner. PAKCS 1.2: The Portland Aachen Kiel Curry System User Manual.
Technical report, University of Kiel, Germany, 2000.

[HHN00] M. Hanus, F. Huch, and P. Niederau. An object-oriented extension of the declarative multi-paradigm language curry.
In Proc. of the 12th International Workshop on Implementation of Functional Languages (IFL 2000), pages 89--106. Springer LNCS 2011, 2001.

[HLM98] M. Hanus, S. Lucas, and A. Middeldorp. Strongly sequential and inductively sequential term rewriting systems.
Information Processing Letters, Vol. 67 (1), pp. 1--8, 1998.

[LLR93] R. Loogen, F.J. López-Fraguas, and M. Rodríguez-Artalejo. A Demand Driven Computation Strategy for Lazy Narrowing.
Proc. PLILP'93, Springer LNCS 714, pp. 184--200, 1993.

[LS02] F.J. López-Fraguas and J. Sánchez-Hernández. A Proof Theoretic Approach to Failure in Functional Logic Programming.
To appear in Theory and Practice of Logic Programming.

[Mid97] A. Middeldorp. Call by Need Computations to Root-Stable Form.
Proc. POPL'97, ACM Press, pp. 94--105, 1997.

[MH94] A. Middeldorp and E. Hamoen. Completeness Results for Basic Narrowing.
Applicable Algebra in Engineering, Communications and Computing 5, pp. 213--253, 1994.

[MO98] A. Middeldorp and S. Okui. A Deterministic Lazy Narrowing Calculus.
Journal of Symbolic Computation 25(6), pp. 733--757, 1998. Preliminary version appeared in Proc. 1st Fuji Int. Workshop on Functional and Logic Programming, World Scientific, pp. 104--118, 1995.

[Rod01] M. Rodríguez-Artalejo. Functional and Constraint Logic Programming.
Constraints in Computational Logics, International Summer School CCL'99, Revised Lectures. Springer LNCS 2002, Chapter 5, pp. 202--270, 2001.

[Vad02] R. del Vado Vírseda. Estrategias de Estrechamiento Perezoso.
Trabajo de Investigación, Programa de Doctorado ``Sistemas Informáticos y Programaci'on'' (segundo período), DSIP UCM, Septiembre de 2002.

elvira@sip.ucm.es