While it is a highly flexible and efficient language, C program- ming can be annoying for beginners who have difficultly finding, debugging, or understanding errors — especially those related to memory manipulation. This paper describes an initial phase of Im-C, a project whose goal is to develop a number of related envi- ronments that progress from easy-to-understand ‘C-with-objects’ to a safe environment for both testing and learning to write ‘real’ C programs, bringing more fun to the programming experience. In the current phase an experimental C interpreter has been developed to provide a foundation for real-time validation of C program behavior. The interpreter identifies errors related to memory manipulation, pointer operations and array access, by storing all values as objects containing meta-data, while preserving the semantics expected by C programmers. We validate the effectiveness of our interpreter by comparing its ability to detect a range of both common and obscure errors again
Toni Mattis University of Potsdam; Hasso Plattner Institute, Lukas Böhme Hasso Plattner Institute, University of Potsdam, Potsdam, Germany, Stefan Ramson Hasso Plattner Institute, Germany, Tom Beckmann Hasso Plattner Institute, Martin C. Rinard Massachusetts Institute of Technology, Robert Hirschfeld Hasso Plattner Institute; University of Potsdam