ICPC 2018
Sun 27 - Mon 28 May 2018 Gothenburg, Sweden
co-located with * ICSE 2018 *
Mon 28 May 2018 16:27 - 16:37 at J1 room - Readibility, Features and APIs Chair(s): Yoshiki Higo

CodeCompass is an open source LLVM/Clang based tool developed by Ericsson Ltd. and the Eötvös Loránd University, Budapest to help understanding large legacy software systems. Based on the LLVM/Clang compiler infrastructure, CodeCompass gives exact information on complex C/C++ language elements like overloading, inheritance, the usage of variables and types, possible uses of function pointers and the virtual functions – features that various existing tools support only partially. Steensgaard’s and Andersen’s pointer analysis algorithm are used to compute and visualize the use of pointers/references. The wide range of interactive visualizations extends further than the usual class and function call diagrams; architectural, component and interface diagrams are a few of the implemented graphs. To make comprehension more extensive, CodeCompass is not restricted to the source code. It also utilizes build information to explore the system architecture as well as version control information e.g. git commit history and blame view. Clang based static analysis results are also integrated to CodeCompass. Although the tool focuses mainly on C and C++, it also supports Java and Python languages. In this demo we will simulate a typical bug-fixing work flow in a C++ system. First, we show, how to use the combined text and definition based search for a fast feature location. Here we also demonstrate our log search, which can be used to locate the code source of an emitted message. When we have an approximate location of the issue, we can start a detailed investigation understanding the class relationships, function call chains (including virtual calls, and calls via function pointers), and the read/write events on individual variables. We also visualize the pointer relationships. To make the comprehension complete, we check the version control information who committed the code, when and why. This Tool demo submission is complementing our Industry track submission with the similar title. A live demo is also available at the homepage of the tool https://github.com/ericsson/codecompass.

Mon 28 May
Times are displayed in time zone: (GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

16:00 - 17:30: Technical Research - Readibility, Features and APIs at J1 room
Chair(s): Yoshiki HigoOsaka University
icpc-2018-Technical-Research16:00 - 16:17
Rodrigo SantosIPT-SP, Marco GerosaNorthern Arizona University
icpc-2018-Technical-Research16:17 - 16:27
Giovanni GranoUniversity of Zurich, Simone ScalabrinoUniversity of Molise, Harald GallUniversity of Zurich, Rocco OlivetoUniversity of Molise
icpc-2018-Technical-Research16:27 - 16:37
Zoltan PorkolabEotvos Lorond University, Dániel KruppEricsson Ltd, Tibor BrunnerEricsson Hungary, Marton CsordasEricsson Hungary
Link to publication DOI Pre-print
icpc-2018-Technical-Research16:37 - 16:54
Sarah FakhouryWashington State University, Yuzhan MaWashington State University Pullman, Venera ArnaoudovaWashington State University Pullman, Olusola AdesopeWashington State University
DOI Pre-print
icpc-2018-Technical-Research16:54 - 17:11
Ran MoDrexel University, Yuanfang Cai Drexel University, Rick KazmanUniversity of Hawai‘i at Mānoa, Qiong FengDrexel University
icpc-2018-Technical-Research17:11 - 17:21
Industry talk
Gregory S. DeLozier, Michael DeckerBowling Green State University, Christian NewmanRochester Institute of Technology, Jonathan MaleticKent State University