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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call