[{"publication_identifier":{"issn":["1868-8969"],"isbn":["978-3-95977-341-6"]},"page":"36:1–36:28","intvolume":"       313","citation":{"apa":"Schiebel, F. B., Sattler, F., Schubert, P. D., Apel, S., &#38; Bodden, E. (2024). Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report. In J. Aldrich &#38; G. Salvaneschi (Eds.), <i>38th European Conference on Object-Oriented Programming (ECOOP 2024)</i> (Vol. 313, p. 36:1–36:28). Schloss Dagstuhl – Leibniz-Zentrum für Informatik. <a href=\"https://doi.org/10.4230/LIPIcs.ECOOP.2024.36\">https://doi.org/10.4230/LIPIcs.ECOOP.2024.36</a>","short":"F.B. Schiebel, F. Sattler, P.D. Schubert, S. Apel, E. Bodden, in: J. Aldrich, G. Salvaneschi (Eds.), 38th European Conference on Object-Oriented Programming (ECOOP 2024), Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl, Germany, 2024, p. 36:1–36:28.","bibtex":"@inproceedings{Schiebel_Sattler_Schubert_Apel_Bodden_2024, place={Dagstuhl, Germany}, series={Leibniz International Proceedings in Informatics (LIPIcs)}, title={Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report}, volume={313}, DOI={<a href=\"https://doi.org/10.4230/LIPIcs.ECOOP.2024.36\">10.4230/LIPIcs.ECOOP.2024.36</a>}, booktitle={38th European Conference on Object-Oriented Programming (ECOOP 2024)}, publisher={Schloss Dagstuhl – Leibniz-Zentrum für Informatik}, author={Schiebel, Fabian Benedikt and Sattler, Florian and Schubert, Philipp Dominik and Apel, Sven and Bodden, Eric}, editor={Aldrich, Jonathan and Salvaneschi, Guido}, year={2024}, pages={36:1–36:28}, collection={Leibniz International Proceedings in Informatics (LIPIcs)} }","mla":"Schiebel, Fabian Benedikt, et al. “Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report.” <i>38th European Conference on Object-Oriented Programming (ECOOP 2024)</i>, edited by Jonathan Aldrich and Guido Salvaneschi, vol. 313, Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2024, p. 36:1–36:28, doi:<a href=\"https://doi.org/10.4230/LIPIcs.ECOOP.2024.36\">10.4230/LIPIcs.ECOOP.2024.36</a>.","ama":"Schiebel FB, Sattler F, Schubert PD, Apel S, Bodden E. Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report. In: Aldrich J, Salvaneschi G, eds. <i>38th European Conference on Object-Oriented Programming (ECOOP 2024)</i>. Vol 313. Leibniz International Proceedings in Informatics (LIPIcs). Schloss Dagstuhl – Leibniz-Zentrum für Informatik; 2024:36:1–36:28. doi:<a href=\"https://doi.org/10.4230/LIPIcs.ECOOP.2024.36\">10.4230/LIPIcs.ECOOP.2024.36</a>","chicago":"Schiebel, Fabian Benedikt, Florian Sattler, Philipp Dominik Schubert, Sven Apel, and Eric Bodden. “Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report.” In <i>38th European Conference on Object-Oriented Programming (ECOOP 2024)</i>, edited by Jonathan Aldrich and Guido Salvaneschi, 313:36:1–36:28. Leibniz International Proceedings in Informatics (LIPIcs). Dagstuhl, Germany: Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2024. <a href=\"https://doi.org/10.4230/LIPIcs.ECOOP.2024.36\">https://doi.org/10.4230/LIPIcs.ECOOP.2024.36</a>.","ieee":"F. B. Schiebel, F. Sattler, P. D. Schubert, S. Apel, and E. Bodden, “Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report,” in <i>38th European Conference on Object-Oriented Programming (ECOOP 2024)</i>, 2024, vol. 313, p. 36:1–36:28, doi: <a href=\"https://doi.org/10.4230/LIPIcs.ECOOP.2024.36\">10.4230/LIPIcs.ECOOP.2024.36</a>."},"year":"2024","place":"Dagstuhl, Germany","volume":313,"author":[{"first_name":"Fabian Benedikt","id":"55745","full_name":"Schiebel, Fabian Benedikt","last_name":"Schiebel","orcid":"0009-0008-6867-9802"},{"last_name":"Sattler","full_name":"Sattler, Florian","first_name":"Florian"},{"full_name":"Schubert, Philipp Dominik","last_name":"Schubert","first_name":"Philipp Dominik"},{"first_name":"Sven","full_name":"Apel, Sven","last_name":"Apel"},{"full_name":"Bodden, Eric","id":"59256","last_name":"Bodden","orcid":"0000-0003-3470-3647","first_name":"Eric"}],"date_created":"2024-11-04T13:37:23Z","date_updated":"2025-12-04T10:41:59Z","publisher":"Schloss Dagstuhl – Leibniz-Zentrum für Informatik","doi":"10.4230/LIPIcs.ECOOP.2024.36","title":"Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report","publication":"38th European Conference on Object-Oriented Programming (ECOOP 2024)","type":"conference","status":"public","editor":[{"first_name":"Jonathan","full_name":"Aldrich, Jonathan","last_name":"Aldrich"},{"first_name":"Guido","last_name":"Salvaneschi","full_name":"Salvaneschi, Guido"}],"department":[{"_id":"76"},{"_id":"662"}],"user_id":"15249","series_title":"Leibniz International Proceedings in Informatics (LIPIcs)","_id":"56863","language":[{"iso":"eng"}]},{"publication":"Automated Software Engineering","abstract":[{"lang":"eng","text":"<jats:title>Abstract</jats:title><jats:p>Many critical codebases are written in C, and most of them use preprocessor directives to encode variability, effectively encoding software product lines. These preprocessor directives, however, challenge any static code analysis. SPLlift, a previously presented approach for analyzing software product lines, is limited to Java programs that use a rather simple feature encoding and to analysis problems with a finite and ideally small domain. Other approaches that allow the analysis of real-world C software product lines use special-purpose analyses, preventing the reuse of existing analysis infrastructures and ignoring the progress made by the static analysis community. This work presents <jats:sc>VarAlyzer</jats:sc>, a novel static analysis approach for software product lines. <jats:sc>VarAlyzer</jats:sc> first transforms preprocessor constructs to plain C while preserving their variability and semantics. It then solves any given distributive analysis problem on transformed product lines in a variability-aware manner. <jats:sc>VarAlyzer</jats:sc> ’s analysis results are annotated with feature constraints that encode in which configurations each result holds. Our experiments with 95 compilation units of OpenSSL show that applying <jats:sc>VarAlyzer</jats:sc> enables one to conduct inter-procedural, flow-, field- and context-sensitive data-flow analyses on entire product lines for the first time, outperforming the product-based approach for highly-configurable systems.</jats:p>"}],"keyword":["inter-procedural static analysis","software product lines","preprocessor","LLVM","C/C++"],"language":[{"iso":"eng"}],"issue":"1","year":"2022","publisher":"Springer Science and Business Media LLC","date_created":"2022-03-25T07:41:26Z","title":"Static data-flow analysis for software product lines in C","type":"journal_article","status":"public","project":[{"name":"SFB 901 - B4: SFB 901 - Subproject B4","_id":"12"},{"name":"SFB 901 - B: SFB 901 - Project Area B","_id":"3"},{"_id":"1","name":"SFB 901: SFB 901"}],"_id":"30511","user_id":"15249","department":[{"_id":"76"}],"article_type":"original","article_number":"35","alternative_title":["Revoking the preprocessor’s special role"],"publication_status":"published","publication_identifier":{"issn":["0928-8910","1573-7535"]},"citation":{"ieee":"P. Schubert <i>et al.</i>, “Static data-flow analysis for software product lines in C,” <i>Automated Software Engineering</i>, vol. 29, no. 1, Art. no. 35, 2022, doi: <a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>.","chicago":"Schubert, Philipp, Paul Gazzillo, Zach Patterson, Julian Braha, Fabian Benedikt Schiebel, Ben Hermann, Shiyi Wei, and Eric Bodden. “Static Data-Flow Analysis for Software Product Lines in C.” <i>Automated Software Engineering</i> 29, no. 1 (2022). <a href=\"https://doi.org/10.1007/s10515-022-00333-1\">https://doi.org/10.1007/s10515-022-00333-1</a>.","ama":"Schubert P, Gazzillo P, Patterson Z, et al. Static data-flow analysis for software product lines in C. <i>Automated Software Engineering</i>. 2022;29(1). doi:<a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>","apa":"Schubert, P., Gazzillo, P., Patterson, Z., Braha, J., Schiebel, F. B., Hermann, B., Wei, S., &#38; Bodden, E. (2022). Static data-flow analysis for software product lines in C. <i>Automated Software Engineering</i>, <i>29</i>(1), Article 35. <a href=\"https://doi.org/10.1007/s10515-022-00333-1\">https://doi.org/10.1007/s10515-022-00333-1</a>","mla":"Schubert, Philipp, et al. “Static Data-Flow Analysis for Software Product Lines in C.” <i>Automated Software Engineering</i>, vol. 29, no. 1, 35, Springer Science and Business Media LLC, 2022, doi:<a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>.","short":"P. Schubert, P. Gazzillo, Z. Patterson, J. Braha, F.B. Schiebel, B. Hermann, S. Wei, E. Bodden, Automated Software Engineering 29 (2022).","bibtex":"@article{Schubert_Gazzillo_Patterson_Braha_Schiebel_Hermann_Wei_Bodden_2022, title={Static data-flow analysis for software product lines in C}, volume={29}, DOI={<a href=\"https://doi.org/10.1007/s10515-022-00333-1\">10.1007/s10515-022-00333-1</a>}, number={135}, journal={Automated Software Engineering}, publisher={Springer Science and Business Media LLC}, author={Schubert, Philipp and Gazzillo, Paul and Patterson, Zach and Braha, Julian and Schiebel, Fabian Benedikt and Hermann, Ben and Wei, Shiyi and Bodden, Eric}, year={2022} }"},"intvolume":"        29","oa":"1","date_updated":"2025-12-04T10:42:38Z","author":[{"first_name":"Philipp","full_name":"Schubert, Philipp","id":"60543","orcid":"0000-0002-8674-1859","last_name":"Schubert"},{"last_name":"Gazzillo","full_name":"Gazzillo, Paul","first_name":"Paul"},{"last_name":"Patterson","full_name":"Patterson, Zach","first_name":"Zach"},{"full_name":"Braha, Julian","last_name":"Braha","first_name":"Julian"},{"first_name":"Fabian Benedikt","orcid":"0009-0008-6867-9802","last_name":"Schiebel","id":"55745","full_name":"Schiebel, Fabian Benedikt"},{"first_name":"Ben","last_name":"Hermann","orcid":"0000-0001-9848-2017","full_name":"Hermann, Ben","id":"66173"},{"full_name":"Wei, Shiyi","last_name":"Wei","first_name":"Shiyi"},{"orcid":"0000-0003-3470-3647","last_name":"Bodden","full_name":"Bodden, Eric","id":"59256","first_name":"Eric"}],"volume":29,"main_file_link":[{"open_access":"1","url":"https://link.springer.com/article/10.1007/s10515-022-00333-1"}],"doi":"10.1007/s10515-022-00333-1"},{"language":[{"iso":"eng"}],"department":[{"_id":"76"}],"user_id":"15249","_id":"26405","project":[{"name":"SFB 901 - B4: SFB 901 - Subproject B4","_id":"12"},{"_id":"3","name":"SFB 901 - B: SFB 901 - Project Area B"},{"_id":"1","name":"SFB 901: SFB 901: On-The-Fly Computing - Individualisierte IT-Dienstleistungen in dynamischen Märkten "}],"status":"public","publication":"2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)","type":"conference","title":"Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++","date_created":"2021-10-18T12:50:35Z","author":[{"last_name":"Schubert","orcid":"0000-0002-8674-1859","full_name":"Schubert, Philipp","id":"60543","first_name":"Philipp"},{"first_name":"Florian","full_name":"Sattler, Florian","last_name":"Sattler"},{"id":"55745","full_name":"Schiebel, Fabian Benedikt","last_name":"Schiebel","orcid":"0009-0008-6867-9802","first_name":"Fabian Benedikt"},{"id":"66173","full_name":"Hermann, Ben","last_name":"Hermann","orcid":"0000-0001-9848-2017","first_name":"Ben"},{"first_name":"Eric","full_name":"Bodden, Eric","id":"59256","orcid":"0000-0003-3470-3647","last_name":"Bodden"}],"date_updated":"2025-12-04T10:43:01Z","citation":{"chicago":"Schubert, Philipp, Florian Sattler, Fabian Benedikt Schiebel, Ben Hermann, and Eric Bodden. “Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++.” In <i>2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)</i>, 2021.","ieee":"P. Schubert, F. Sattler, F. B. Schiebel, B. Hermann, and E. Bodden, “Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++,” 2021.","ama":"Schubert P, Sattler F, Schiebel FB, Hermann B, Bodden E. Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++. In: <i>2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)</i>. ; 2021.","mla":"Schubert, Philipp, et al. “Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++.” <i>2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)</i>, 2021.","short":"P. Schubert, F. Sattler, F.B. Schiebel, B. Hermann, E. Bodden, in: 2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM), 2021.","bibtex":"@inproceedings{Schubert_Sattler_Schiebel_Hermann_Bodden_2021, title={Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++}, booktitle={2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)}, author={Schubert, Philipp and Sattler, Florian and Schiebel, Fabian Benedikt and Hermann, Ben and Bodden, Eric}, year={2021} }","apa":"Schubert, P., Sattler, F., Schiebel, F. B., Hermann, B., &#38; Bodden, E. (2021). Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++. <i>2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)</i>."},"year":"2021"}]
