HeaderSplit: An Automated Tool for Splitting Header Files in C Projects
Developers often need to refactor bloated code files that have accumulated multiple responsibilities over time, typically by splitting a large code file into several smaller ones. Existing works, primarily focusing on class file decomposition, often fail to split header files as they seldom consider build dependencies of the system and cannot ensure acyclic dependencies among the decomposed files. In this work, we propose HeaderSplit, an automated tool designed specifically for splitting header files in C projects. It first suggests a decomposition plan based on multi-view graph clustering and cyclic dependencies fixing heuristics, showing the code elements in each new file and the “include” relationships among the files. Upon user approval, HeaderSplit automatically executes the refactoring, generating new header files and updating the include statements in all code files that directly or transitively include the original header file. Implemented as a VS Code extension, HeaderSplit has been evaluated on real-world projects, showing improved cohesion, reduction in recompilation, and ensured acyclic dependencies, all within acceptable time limits. The tool is available at https://github.com/wangyue0502/HeaderSplit. The demonstration video can be found at https://youtu.be/QXi-emXkdzk.
Wed 25 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | Program Analysis 4Demonstrations / Journal First / Research Papers at Pirsenteret 150 Chair(s): Matthew B Dwyer University of Virginia | ||
14:00 10mTalk | HeaderSplit: An Automated Tool for Splitting Header Files in C Projects Demonstrations Yue Wang Peking University, Jiaxuan Sun Peking University, Tongwei Deng Peking University, Wenhui Chang Peking University, Yanzhen Zou Peking University, Bing Xie Peking University | ||
14:10 20mTalk | Recasting Type Hints from WebAssembly Contracts Research Papers Kunsong Zhao The Hong Kong Polytechnic University, Zihao Li Hong Kong Polytechnic University, Weimin Chen The Hong Kong Polytechnic University, Xiapu Luo Hong Kong Polytechnic University, Ting Chen University of Electronic Science and Technology of China, Guozhu Meng Institute of Information Engineering, Chinese Academy of Sciences, Yajin Zhou Zhejiang University; ZJU-Hangzhou Global Scientific and Technological Innovation Center DOI | ||
14:30 20mTalk | Medusa: A Framework for Collaborative Development of Foundation Models with Automated Parameter Ownership Assignment Research Papers Dezhi Ran Peking University, Yuan Cao Peking University, Yuzhe Guo Beijing Jiaotong University, Yuetong Li The University of Chicago, Mengzhou Wu Peking University, Simin Chen University of Texas at Dallas, Wei Yang UT Dallas, Tao Xie Peking University DOI | ||
14:50 10mTalk | jAST: Analyzing and Modifying Java ASTs with Python Demonstrations Marius Smytzek CISPA Helmholtz Center for Information Security, Martin Eberlein Humboldt-Universtität zu Berlin, Lars Grunske Humboldt-Universität zu Berlin, Andreas Zeller CISPA Helmholtz Center for Information Security | ||
15:00 20mTalk | Hybrid Automated Program Repair by Combining Large Language Models and Program Analysis Journal First Fengjie Li Tianjin University, Jiajun Jiang Tianjin University, Jiajun Sun Tianjin University, Hongyu Zhang Chongqing University | ||
15:20 10mTalk | JSSpecVis: A JavaScript Language Specification Visualization Tool Demonstrations Minseok Choe Korea University, Kyungho Song Sogang University, Hyunjoon Kim Korea University, Jihyeok Park Korea University |
This room is located outside Clarion Hotel
This room is located in the Pirsenteret (The Pier Center) convention center. It is just outside the hotel, on the back, towards the fjord.
You should be able to go through the emergency exit at Clarion, just on the side of the Cosmos 3 wing, which will be bring you close to Pirsenteret.
The entrance to the center is from here:
https://maps.app.goo.gl/dU3qH6kAimXGBNHe7
Once inside, go all straight and you will find signage to reach the room. The room is known as room 150 inside the center.