Regular Article
Evaluating environments for functional programming

https://doi.org/10.1006/ijhc.1999.0356Get rights and content

Abstract

Functional programming presents new challenges in the design of programming environments. In a strongly typed functional language, such as ML, much conventional debugging of runtime errors is replaced by dealing with compile-time error reports. On the other hand, the cleanness of functional programming opens up new possibilities for incorporating sophisticated correctness-checking techniques into such environments. CYNTHIA is a novel editor for ML that both addresses the challenges and explores the possibilities. It uses an underlying proof system as a framework for automatically checking for semantic errors such as non-termination. In addition, CYNTHIA embodies the idea of programming by analogy—whereby users write programs by applying abstract transformations to existing programs. This paper investigatesCYNTHIA 's potential as a novice ML programming environment. We report on two studies in which it was found that students using CYNTHIA commit fewer errors and correct errors more quickly than when using a compiler/text editor approach.

References (37)

  • D DUGGAN et al.

    Explaining type inference

    Science of Computer Programming

    (1996)
  • T.R.G GREEN et al.

    Usability analysis of visual programming environments: a ‘cognitive dimensions’ framework

    Journal of Visual Languages and Computing

    (1996)
  • AIKINS, J. 1980, Prototypes and production rules: a knowledge representation for computer consultations, Stanford...
  • AITKEN, S. 1996, An analysis of errors in interactive proof attempts, Dept. of Computer Science, Glasgow...
  • J.R ANDERSON et al.

    Learning to program recursive functions

  • BENTAL, D. 1995, Why doesn't my program work?: requirements for automated analysis of novices' computer programs,...
  • S BHUIYAN et al.

    Supporting the learning of recursive problem solving

    Interactive Learning Environments

    (1994)
  • R.S BIRD et al.

    Introduction to Functional Programming

    (1988)
  • BLEWITT, A. 1998, A Java editor based on proofs-as-programs, Department of Artificial Intelligence, Edinburgh,...
  • A BOWLES et al.

    Programming plans and techniques

  • P BRNA et al.

    Searching for examples: an evaluation of an intermediate description language for a techniques editor

  • A BUNDY et al.

    A recursive techniques editor for Prolog

    Instructional Science

    (1991)
  • N DERSOWITZ

    Synthetic programming

    Artificial Intelligence

    (1985)
  • J.A ESCOTT et al.

    Problem solving by analogy: a source of errors in novice LISP programming

    (1988)
  • T.S GEGG-HARRISON

    Learning Prolog in a schema-based environment

    Instructional Science

    (1991)
  • GIML, 1998, Department of Computing Studies, Napier University, Craiglockhart campus, 219 Colinton Road, EH14 IDJ, A...
  • W.J HANSEN

    Graphic editing of structured text

  • ML Works

    (1996)
  • Formerly at University of Edinburgh.

    f1

    [email protected]

    f2

    [email protected]

    View full text