{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,1]],"date-time":"2026-07-01T04:04:32Z","timestamp":1782878672849,"version":"3.54.5"},"reference-count":40,"publisher":"Institute of Electrical and Electronics Engineers (IEEE)","issue":"12","license":[{"start":{"date-parts":[[2002,12,1]],"date-time":"2002-12-01T00:00:00Z","timestamp":1038700800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/ieeexplore.ieee.org\/Xplorehelp\/downloads\/license-information\/IEEE.html"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IIEEE Trans. Software Eng."],"published-print":{"date-parts":[[2002,12]]},"DOI":"10.1109\/tse.2002.1158288","type":"journal-article","created":{"date-parts":[[2003,2,6]],"date-time":"2003-02-06T21:06:40Z","timestamp":1044565600000},"page":"1146-1170","source":"Crossref","is-referenced-by-count":159,"title":["An empirical analysis of c preprocessor use"],"prefix":"10.1109","volume":"28","author":[{"given":"M.D.","family":"Ernst","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"G.J.","family":"Badros","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"D.","family":"Notkin","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"263","reference":[{"key":"ref1","doi-asserted-by":"publisher","DOI":"10.1145\/302405.302649"},{"key":"ref2","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1097-024X(20000710)30:8<907::AID-SPE324>3.0.CO;2-I"},{"key":"ref3","volume-title":"Recommended C Style and Coding Standards","author":"Cannon"},{"key":"ref4","volume-title":"Designing and Coding Reusable C++","author":"Carroll"},{"key":"ref5","volume-title":"Object Oriented Programming: An Evolutionary Approach","author":"Cox"},{"key":"ref6","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4684-5862-6_31"},{"key":"ref7","article-title":"ansi2knr","author":"Deutsch","year":"1990"},{"key":"ref8","volume-title":"Notes on Writing Portable Programs in C","author":"Dolenc","year":"1990"},{"key":"ref9","article-title":"Programming in C++: Rules and Recommendations","volume-title":"technical report, Ellemtel Telecomm.","year":"1992"},{"key":"ref10","doi-asserted-by":"publisher","DOI":"10.1145\/193173.195297"},{"key":"ref11","volume-title":"LCLint User\u2019s Guide","author":"Evans","year":"1996"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.1996.565036"},{"key":"ref13","article-title":"PC-lint\/FlexeLint","author":"Software","year":"1999"},{"key":"ref14","volume-title":"GNU C Preprocessor Manual","year":"1996"},{"key":"ref15","doi-asserted-by":"publisher","DOI":"10.1109\/WPC.1996.501129"},{"key":"ref16","volume-title":"C: A Reference Manual","author":"Harbison","year":"1995"},{"key":"ref17","article-title":"Lint, a C Program Checker","author":"Johnson","year":"1977"},{"key":"ref18","doi-asserted-by":"publisher","DOI":"10.1145\/290229.290234"},{"key":"ref19","volume-title":"The C Programming Language","author":"Kernighan","year":"1988"},{"key":"ref20","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/1405.001.0001"},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1145\/319838.319859"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.1994.296765"},{"key":"ref23","doi-asserted-by":"publisher","DOI":"10.1109\/WPC.1994.341255"},{"key":"ref24","article-title":"Metrics Collection Tools for C and C++ Source Code","author":"Lott","year":"1998"},{"issue":"2","key":"ref25","first-page":"68, 70-2","article-title":"Examining C++ Program Analyzers","volume-title":"Dr. Dobb\u2019s J.","volume":"22","author":"Meyers"},{"key":"ref26","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.1996.493405"},{"key":"ref27","doi-asserted-by":"publisher","DOI":"10.1109\/32.295894"},{"key":"ref28","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-61053-7_63"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1145\/239098.239121"},{"key":"ref30","first-page":"185","article-title":"#ifdef Considered Harmful, or Portability Experience with C News","volume-title":"Proc. Usenix Summer 1992 Technical Conf.","author":"Spencer"},{"key":"ref31","article-title":"Static Detection of Preprocessor Macro Errors in C","author":"Spuler","year":"1992"},{"key":"ref32","volume-title":"Scwm Reference Manual: The Authoritative Guide to the Emacs of Window Managers","author":"Stachowiak","year":"1999"},{"key":"ref33","volume-title":"GNU Emacs Manual","author":"Stallman"},{"key":"ref34","volume-title":"Using and Porting GNU CC","author":"Stallman"},{"key":"ref35","volume-title":"GNU Coding Standards","author":"Stallman","year":"1997"},{"key":"ref36","volume-title":"Common Lisp: The Language","author":"Steele","year":"1990"},{"key":"ref37","volume-title":"The Design and Evolution of C++","author":"Stroustrup"},{"key":"ref38","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155105"},{"key":"ref39","doi-asserted-by":"publisher","DOI":"10.1145\/1006147.1006183"},{"key":"ref40","volume-title":"Human Behavior and the Principle of Least Effort","author":"Zipf"}],"container-title":["IEEE Transactions on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx5\/32\/25950\/01158288.pdf?arnumber=1158288","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,16]],"date-time":"2025-03-16T04:41:26Z","timestamp":1742100086000},"score":1,"resource":{"primary":{"URL":"http:\/\/ieeexplore.ieee.org\/document\/1158288\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2002,12]]},"references-count":40,"journal-issue":{"issue":"12","published-print":{"date-parts":[[2002,12]]}},"URL":"https:\/\/doi.org\/10.1109\/tse.2002.1158288","relation":{},"ISSN":["0098-5589"],"issn-type":[{"value":"0098-5589","type":"print"}],"subject":[],"published":{"date-parts":[[2002,12]]}}}