JMU
Properties of the C Programming Language
and their Implications for Software Quality


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu


Motivation
Overview
What is an Implementation?
The Guiding Principles
The Guiding Principles (cont.)
The Guiding Principles (cont.)
The Spirit of C Revisited
Resulting Characteristics of C
Some Recent History - C9X (1994)
Some Recent History - C1X (2007)
Kinds of Behavior
Kinds of Behavior (cont.)
Why Allow for Explicitly Undefined Behaviors?
Some Implications
Levels of Portability
Type Safety