{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T16:29:45Z","timestamp":1743006585084,"version":"3.40.3"},"publisher-location":"Berlin, Heidelberg","reference-count":29,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783642007217"},{"type":"electronic","value":"9783642007224"}],"license":[{"start":{"date-parts":[[2009,1,1]],"date-time":"2009-01-01T00:00:00Z","timestamp":1230768000000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2009]]},"DOI":"10.1007\/978-3-642-00722-4_9","type":"book-chapter","created":{"date-parts":[[2009,3,27]],"date-time":"2009-03-27T01:00:16Z","timestamp":1238115616000},"page":"109-125","source":"Crossref","is-referenced-by-count":38,"title":["Parsing C\/C++ Code without Pre-processing"],"prefix":"10.1007","author":[{"given":"Yoann","family":"Padioleau","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"9_CR1","unstructured":"EDG C++ frontend. Edison Design Group, www.edg.com"},{"key":"9_CR2","doi-asserted-by":"crossref","unstructured":"Aversano, L., Penta, M.D., Baxter, I.D.: Handling preprocessor-conditioned declarations. In: International Workshop on Source Code Analysis and Manipulation (2002)","DOI":"10.1109\/SCAM.2002.1134108"},{"key":"9_CR3","doi-asserted-by":"crossref","unstructured":"Badros, G.J., Notkin, D.: A framework for preprocessor-aware C source code analyses. Software, Practice and Experience (2000)","DOI":"10.1002\/(SICI)1097-024X(20000710)30:8<907::AID-SPE324>3.0.CO;2-I"},{"key":"9_CR4","unstructured":"Baxter, I.D., Pidgeon, C., Mehlich, M.: DMS: Program transformations for practical scalable software evolution. In: ICSE (2004)"},{"key":"9_CR5","volume-title":"The Annotated C++ Reference Manual","author":"M.A. Ellis","year":"1990","unstructured":"Ellis, M.A., Stroustrup, B.: The Annotated C++ Reference Manual. Addison-Wesley, Reading (1990)"},{"key":"9_CR6","doi-asserted-by":"crossref","unstructured":"Ernst, M.D., Badros, G.J., Notkin, D., Member, S.: An empirical analysis of C preprocessor use. IEEE Transactions on Software Engineering (2002)","DOI":"10.1109\/TSE.2002.1158288"},{"key":"9_CR7","unstructured":"Evans, D.: Splint (2007), http:\/\/www.splint.org\/"},{"key":"9_CR8","unstructured":"Fowler, M.: Refactoring tools, http:\/\/www.refactoring.com\/tools.html"},{"key":"9_CR9","volume-title":"Refactoring: Improving the Design of Existing Code","author":"M. Fowler","year":"1999","unstructured":"Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)"},{"key":"9_CR10","doi-asserted-by":"crossref","unstructured":"Garrido, A., Johnson, R.: Analyzing multiple configurations of a C program. In: ICSM (2005)","DOI":"10.1109\/ICSM.2005.23"},{"key":"9_CR11","unstructured":"Johnson, S.C.: Yacc: Yet another compiler-compiler. Tech. rep, Unix Programmer\u2019s Manual Vol 2b (1979)"},{"key":"9_CR12","unstructured":"Leroy, X.: Ocaml, http:\/\/caml.inria.fr\/ocaml\/"},{"key":"9_CR13","doi-asserted-by":"crossref","unstructured":"Livadas, P.E., Small, D.T.: Understanding code containing preprocessor constructs. In: IEEE Workshop on Program Comprehension (1994)","DOI":"10.1109\/WPC.1994.341255"},{"key":"9_CR14","doi-asserted-by":"crossref","unstructured":"McCloskey, B., Brewer, E.: ASTEC: a new approach to refactoring C. In: FSE (2005)","DOI":"10.1145\/1081706.1081712"},{"key":"9_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"73","DOI":"10.1007\/978-3-540-24723-4_6","volume-title":"Compiler Construction","author":"S. McPeak","year":"2004","unstructured":"McPeak, S., Necula, G.C.: Elkhound: A fast, practical GLR parser generator. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol.\u00a02985, pp. 73\u201388. Springer, Heidelberg (2004)"},{"key":"9_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1007\/3-540-45937-5_16","volume-title":"Compiler Construction","author":"G.C. Necula","year":"2002","unstructured":"Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate language and tools for analysis and transformation of C programs. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol.\u00a02304, p. 213. Springer, Heidelberg (2002)"},{"key":"9_CR17","doi-asserted-by":"crossref","unstructured":"Padioleau, Y., Lawall, J.L., Hansen, R.R., Muller, G.: Documenting and automating collateral evolutions in Linux device drivers. In: EuroSys (2008)","DOI":"10.1145\/1352592.1352618"},{"key":"9_CR18","doi-asserted-by":"crossref","unstructured":"Padioleau, Y., Tan, L., Zhou, Y.: Listening to programmers: Taxonomies and characteristics of comments in operating system code. In: ICSE (2009)","DOI":"10.1109\/ICSE.2009.5070533"},{"key":"9_CR19","volume-title":"The C Programming Language","author":"D.M. Ritchie","year":"1988","unstructured":"Ritchie, D.M., Kernighan, B.: The C Programming Language. Prentice-Hall, Englewood Cliffs (1988)"},{"key":"9_CR20","unstructured":"Spencer, H.: #ifdef considered harmful, or portability experience with C News. In: USENIX Summer (1992)"},{"key":"9_CR21","doi-asserted-by":"crossref","unstructured":"Spinellis, D.: Global analysis and transformations in preprocessed languages. IEEE Transactions on Software Engineering (2003)","DOI":"10.1109\/TSE.2003.1245303"},{"key":"9_CR22","unstructured":"Stallman, R.\u00a0M. Using GCC. GNU Press, GNU C extensions (2003), http:\/\/gcc.gnu.org\/onlinedocs\/gcc\/index.html#toc_C-Extensions"},{"key":"9_CR23","volume-title":"The Design and Evolution of C++","author":"B. Stroustrup","year":"1994","unstructured":"Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994)"},{"key":"9_CR24","doi-asserted-by":"crossref","unstructured":"Tomita, M.: An efficient context-free parsing algorithm for natural languages. In: IJCAI (1985)","DOI":"10.1007\/978-1-4757-1885-0"},{"key":"9_CR25","unstructured":"Vittek, M.: Xrefactory for C\/C++, http:\/\/xref-tech.com\/xrefactory\/main.html"},{"key":"9_CR26","doi-asserted-by":"crossref","unstructured":"Vittek, M.: Refactoring browser with preprocessor. In: Conference on Software Maintenance And Reengineering (2003)","DOI":"10.1109\/CSMR.2003.1192417"},{"key":"9_CR27","doi-asserted-by":"crossref","unstructured":"Wadler, P.: Views: A way for pattern matching to cohabit with data abstraction. In: POPL (1987)","DOI":"10.1145\/41625.41653"},{"key":"9_CR28","unstructured":"Wansbrough, K.: Macros and preprocessing in Haskell (1999), http:\/\/www.cl.cam.ac.uk\/~kw217\/research\/misc\/hspp-hw99.ps.gz"},{"key":"9_CR29","unstructured":"Willink, E.D., Vyacheslav, Muchnick, B.: Fog: A meta-compiler for C++ patterns. Tech. rep. (1998)"}],"container-title":["Lecture Notes in Computer Science","Compiler Construction"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-00722-4_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,5,24]],"date-time":"2023-05-24T16:51:26Z","timestamp":1684947086000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-00722-4_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009]]},"ISBN":["9783642007217","9783642007224"],"references-count":29,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-00722-4_9","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2009]]}}}