Results 1 -
3 of
3
Towards an ML-style Polymorphic Type System for C
- In 1996 European Symposium on Programming
, 1996
"... . Advanced polymorphic type systems have come to play an important role in the world of functional programming. But, curiously, these type systems have so far had little impact upon widely-used imperative programming languages like C and C++. We show that ML-style polymorphism can be integrated smoo ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
. Advanced polymorphic type systems have come to play an important role in the world of functional programming. But, curiously, these type systems have so far had little impact upon widely-used imperative programming languages like C and C++. We show that ML-style polymorphism can be integrated smoothly into a dialect of C, which we call Polymorphic C. It has the same pointer operations as C, including the address-of operator &, the dereferencing operator , and pointer arithmetic. Our type system allows these operations in their full generality, so that programmers need not give up the flexibility of C to gain the benefits of ML-style polymorphism. We prove a type soundness theorem that gives a rigorous and useful characterization of well-typed Polymorphic C programs in terms of what can go wrong when they are evaluated. 1 Introduction Much attention has been given to developing sound polymorphic type systems for languages with imperative features. Most notable is the large body of wo...
Evaluating Environments for Functional Programming
- International Journal of Human-Computer Studies
, 2000
"... 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 progr ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
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. C Y NTHIA 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, C Y NTHIA embodies the idea of programming by analogy --- whereby users write programs by applying abstract transformations to existing programs. This paper investigates C Y NTHIA's potential as a novice ML programming environment. We report on two studies in which it was found that students using C Y NTHIA commit fewer er...
A Qualitative and Quantative Analysis of Errors Encountered by Novice ML Programmers
, 1996
"... this document. The scripts are intended to back-up the knowledge gleaned from the questionnaires ..."
Abstract
- Add to MetaCart
this document. The scripts are intended to back-up the knowledge gleaned from the questionnaires

