An Experiment to Assess the Benefits of Inter-Module Type Checking

  • Authors:
  • Lutz Prechelt;Walter F. Tichy

  • Affiliations:
  • -;-

  • Venue:
  • METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper reports on an experiment to assess the error detection capabilities of static, inter-module type checking. Type checking is considered an important mechanism for detecting programming errors, especially interface errors. The experiment uses Kernighan&Ritchie C and ANSI C. The relevant difference is that the ANSI C compiler checks module interfaces (i.e., the parameter lists of calls to external functions), whereas K&R C does not. The experiment employs a counterbalanced design, in which each subject writes two non-trivial programs that interface with a complex library (Motif). Each subject writes one program in K&R C and one in ANSI C. The input to each compiler run is saved and manually analyzed for errors. Results indicate that delivered ANSI C programs contain significantly fewer interface errors than delivered K&R C programs. Furthermore, after subjects have gained some familiarity with the interface they are using, ANSI C programmers remove errors faster and are more productive (measured in both time to completion and functionality implemented).