Understanding Lolita: Program comprehension in functional languages

J. E. Hazan, S. A. Jarvis, R. G. Morgan, R. Garigliano

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Traditional arguments concerning the comprehensi-bility of functional programs have been illustrated with trivial examples. In this paper, we present the real-life example of a large system for natural language processing which has been programmed entirely in a lazy functional language. This system is undergoing constant change as new features are added to differ-ent areas. We present a series of case studies which illustrate various aspects of the maintenance task, in-cluding reuse of existing parts of the system and the integration of the new features. We explain how the choice of a functional language for programming the system has aided in the comprehension of the system by new programmers and how this in turn has led to the simplification of the maintenance task. We describe the ease with which new features have been integrated into the system and relate this to the careful design of abstractions within a functional programming frame-work.

Original languageEnglish
Title of host publication2nd IEEE Workshop on Program Comprehension, WPC 1993
PublisherIEEE Computer Society
Pages26-34
Number of pages9
ISBN (Electronic)0818640421
DOIs
Publication statusPublished - 1993
Event2nd IEEE Workshop on Program Comprehension, WPC 1993 - Capri, Italy
Duration: 8 Jul 19939 Jul 1993

Publication series

NameIEEE International Conference on Program Comprehension

Conference

Conference2nd IEEE Workshop on Program Comprehension, WPC 1993
Country/TerritoryItaly
CityCapri
Period8/07/939/07/93

Bibliographical note

Funding Information:
*This research is supported by grants from the Science and Engineering Research Council of Great Britain.

Publisher Copyright:
© 1993 IEEE.

ASJC Scopus subject areas

  • Hardware and Architecture
  • Software

Fingerprint

Dive into the research topics of 'Understanding Lolita: Program comprehension in functional languages'. Together they form a unique fingerprint.

Cite this