Experiences in teaching large scale functional programming

  • Stephen A. Jarvis
  • Sanjay Poria
  • Rick G. Morgan
Understanding LOLITA
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1022)


LOLITA is a large scale natural processing system written in the functional language Haskell. It consists of over 47,000 lines of code written over 180 different modules. There are currently 20 people working on the system, most of whom are Ph.D. students. The majority of research projects involve the development of an application which is written around a semantic network; the knowledge representation structure at the core of the system. Because of the type of various applications, developers often join the team with little or no functional programming experience. For this reason the task of teaching these developers to the level required to implement their respective applications, requires teaching at various levels of abstraction. The strategy chosen means that each researcher only needs to be taught at the particular level of abstraction at which they work. These abstractions give rise to the notion of a domain specific sublanguage; that is a programming style in which a different language is created for each desired level of abstraction. In this paper we show how functional languages provide the necessary framework to enable these sublanguages to be created.


Semantic Network Parse Tree Functional Programming Functional Language Semantic Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    N. Ellis, R. Garigliano, and R. Morgan. A new transformation into deterministically parsableform for natural language grammars. In Proceedings of 3rd International Workshop on Parsing Technologies, Tilburg, Netherlands, 1993.Google Scholar
  2. 2.
    R. Garigliano. LOLITA: Progress report 1. Technical Report 12/92, School of Engineering and Computer Science, University of Durham, 1992.Google Scholar
  3. 3.
    A. Gill and P. Wadler. Real world applications of functional programs. Scholar
  4. 4.
    J. Hazan and R. Morgan. The location of errors in functional programs. Lecture Notes in Computer Science, 749:135–152, 1993.Google Scholar
  5. 5.
    P. Hudak, S. Peyton Jones, P. Wadler, et al. Report on the Programming Language Haskell Version 1.2, 1992.Google Scholar
  6. 6.
    J. Hughes. Why fuctional programming matters. The Computer Journal, 32, 1989.Google Scholar
  7. 7.
    S. Jarvis. Profiling large-scale lazy functional programs. PhD thesis, Durham University, forthcoming.Google Scholar
  8. 8.
    D. Long and R. Garigliano. Reasoning by Analogy and Causality: A model and application. Artificial Intelligence. Ellis Horwood, 1994.Google Scholar
  9. 9.
    R. G. Morgan and S. A. Jarvis. Profiling large-scale lazy functional programs. In Proceedings of the Conference on High Performance Functional Computing, Denver, USA., April 1995.Google Scholar
  10. 10.
    S. L. Peyton Jones. Implementing lazy functional programs on stock hardware: the spineless tagless g-machine. Journal of Functional Programming, 2:127–202, 1992.Google Scholar
  11. 11.
    S. L. Peyton Jones et al. The Glasgow Haskell Compiler: a technical overview. In Framework for Information Technology Technical Conference, Keele, 1993.Google Scholar
  12. 12.
    C. Runciman and D. Wakeling. Heap profiling of a lazy functional compiler. In J. Launchbury and P. Sansom, editors, Functional Programming. Springer-Verlag, 1992.Google Scholar
  13. 13.
    C. Runciman and D. Wakeling. Heap profiling for lazy functional programs. Journal of Functional Programming, 3, April 1993.Google Scholar
  14. 14.
    C. Runciman and D. Wakeling. Applications of Functional Programming. UCL Press, 1995.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Stephen A. Jarvis
    • 1
  • Sanjay Poria
    • 2
  • Rick G. Morgan
    • 2
  1. 1.Oxford University Computing LaboratoryOxfordEngland
  2. 2.Dept of Computer ScienceDurham UniversityDurhamEngland

Personalised recommendations