C-Helper: C Latent-error Static/Heuristic Checker for Novice Programmers

Kota Uchida, Katsuhiko Gondow

2016

Abstract

For better programming language education, it is crucial to make compiler warning messages more understandable for novice programmers. Unfortunately, however, Kojima’s research showed warning messages in commercial-level compilers like GCC are still difficult to understand, and the commercial-level compilers tend not to emit how to modify programs to correct the problems. Furthermore, we found that they also tend not to handle latent errors. To solve this problem, by using a heuristic approach, we propose a novel C static checker called C-Helper, that aims to emit more direct error messages understandable for novices to correct wrong programs, and also aims to handle latent errors. Our preliminary evaluation shows that C-Helper was positively evaluated, although our heuristic approach increased false-positives.

References

  1. Flowers, T., Carver, C., and Jackson, J. (2004). Empowering students and building confidence in novice programmers through gauntlet. In Frontiers in Education, 2004. FIE 2004. 34th Annual, pages T3H/10-T3H/13 Vol. 1.
  2. Freund, S. N. and Roberts, E. S. (1996). Thetis: An ansi c programming environment designed for introductory use. In Proceedings of the Twenty-seventh SIGCSE Technical Symposium on Computer Science Education, SIGCSE 7896, pages 300-304, New York, NY, USA. ACM.
  3. Hristova, M., Misra, A., Rutter, M., and Mercuri, R. (2003). Identifying and correcting java programming errors for introductory computer science students. SIGCSE Bull., 35(1):153-156.
  4. Inexpensive Program Analysis Group, University of Virginia, D. o. C. S. (2015). Splint annotation-assisted lightweight static checking. http://www.splint.org/, [Online; accessed 14-Oct-2015].
  5. Kölling, M., Quig, B., Patterson, A., and Rosenberg, J. (2003). The bluej system and its pedagogy. Computer Science Education, 13(4):249-268.
  6. Kummerfeld, S. K. and Kay, J. (2003). The neglected battle fields of syntax errors. In Proceedings of the Fifth Australasian Conference on Computing Education - Volume 20, ACE 7803, pages 105-111, Darlinghurst, Australia, Australia. Australian Computer Society, Inc.
  7. Marceau, G., Fisler, K., and Krishnamurthi, S. (2011a). Measuring the effectiveness of error messages designed for novice programmers. In Proceedings of the 42Nd ACM Technical Symposium on Computer Science Education, SIGCSE 7811, pages 499-504, New York, NY, USA. ACM.
  8. Marceau, G., Fisler, K., and Krishnamurthi, S. (2011b). Mind your language: On novices' interactions with error messages. In Proceedings of the 10th SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software , Onward! 2011, pages 3-18, New York, NY, USA. ACM.
  9. Nielson, F., Nielson, H. R., and Hankin, C. (2004). Principles of Program Analysis. Springer; Corrected edition.
  10. Osuka, T., Kobayashi, T., Atsumi, N., Mase, J., Yamamoto, S., Suzumura, N., and Agusa, K. (2012). CX-checker: A flexibly customizable coding checker for C. Journal of Information Processing Society of Japan, 53(2):590-600.
  11. RemicalSoft (2015). Forum of any questions in the programming language C. http://dixq.net/forum/viewforum.php?f=3, [Online; accessed 14-Oct-2015].
  12. Song, J. S., Hahn, S. H., Tak, K. Y., and Kim, J. H. (1997). An intelligent tutoring system for introductory c language course. Comput. Educ., 28(2):93-102.
  13. uchan-nos (2015). C-helper: A programming environment for beginners of C programming language. https://github.com/uchan-nos/c-helper, [Online; accessed 14-Oct-2015].
  14. Yoshitaka Kojima, Yoshitaka Arahori, K. G. (2015). Investigating the difficulty of commercial-level compiler warning messages for novice programmers. In Proceedings of the 8th International Conference on Computer Supported Education, CSEDU! 2015, pages 483-490.
  15. E15: Shadowed identifiers For Listing 17, C-Helper emits “ Identifier val is shadowed”, while GCC-4.7.2 emits, with the option -Wall, nothing; GCC-4.7.2 emits, with the option -Wshadow, “ test.c:5:9: warning: declaration of val shadows a global declaration.. test.c:2:5: warning: shadowed declaration is here.”.
Download


Paper Citation


in Harvard Style

Uchida K. and Gondow K. (2016). C-Helper: C Latent-error Static/Heuristic Checker for Novice Programmers . In Proceedings of the 8th International Conference on Computer Supported Education - Volume 1: CSEDU, ISBN 978-989-758-179-3, pages 321-329. DOI: 10.5220/0005797703210329


in Bibtex Style

@conference{csedu16,
author={Kota Uchida and Katsuhiko Gondow},
title={C-Helper: C Latent-error Static/Heuristic Checker for Novice Programmers},
booktitle={Proceedings of the 8th International Conference on Computer Supported Education - Volume 1: CSEDU,},
year={2016},
pages={321-329},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005797703210329},
isbn={978-989-758-179-3},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 8th International Conference on Computer Supported Education - Volume 1: CSEDU,
TI - C-Helper: C Latent-error Static/Heuristic Checker for Novice Programmers
SN - 978-989-758-179-3
AU - Uchida K.
AU - Gondow K.
PY - 2016
SP - 321
EP - 329
DO - 10.5220/0005797703210329