← Latest papers
💻 computer science

ATLAS: Multi-View Code Representation Tool for C and C++ Source Programs

ATLAS is an open-source command-line tool that generates aligned abstract syntax trees, control flow graphs, and data flow graphs directly from C and C++ source files without requiring a complete build, producing multi-view representations in JSON, DOT, or PNG formats.

Original authors: Jaid Monwar Chowdhury, Ahmad Farhan Shahriar Chowdhury, Humayra Binte Monwar, Mahmuda Naznin

Published 2026-07-02
📖 4 min read☕ Coffee break read

Original authors: Jaid Monwar Chowdhury, Ahmad Farhan Shahriar Chowdhury, Humayra Binte Monwar, Mahmuda Naznin

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you have a massive, intricate Lego castle built from thousands of tiny bricks. You want to understand how it works, but looking at the finished castle isn't enough. You need three specific blueprints:

  1. The Shape Blueprint: How the bricks are stacked (Syntax).
  2. The Traffic Blueprint: How a person would walk through the rooms and hallways (Control Flow).
  3. The Supply Blueprint: How materials move from one room to another to build things (Data Flow).

For years, if you wanted these blueprints for a specific type of castle (C and C++ code), you had to hire a massive construction crew to finish the building first. If a single brick was missing (a missing file or header), the crew would stop, and you'd get no blueprints at all.

Enter ATLAS.

ATLAS is like a super-smart, instant scanner that doesn't care if the castle is finished. It can look at a pile of loose bricks, a half-built wall, or a complete castle and instantly draw all three blueprints for you.

Here is how it works, using simple analogies:

1. The "No-Construction-Zone" Rule

Most tools are like strict architects who say, "I can't draw the map until you finish the building and hand me the official permit." If you are missing a single header file (a small instruction sheet), they quit.

ATLAS is different. It's like a detective who can look at a half-finished puzzle and say, "I don't need the picture on the box to know where this piece goes." It can analyze code even if parts of the project are missing or if the code wouldn't actually compile. It works directly on the raw source text.

2. The "Universal ID Tag" System

Usually, if you get a Shape Blueprint from one tool and a Traffic Blueprint from another, they use different numbering systems. It's like one map uses "Room 101" and the other uses "The Blue Hallway." You can't easily match them up.

ATLAS gives every single piece of code a Universal ID Tag.

  • A variable named x gets the same ID in the Shape, Traffic, and Supply blueprints.
  • Because they all share these tags, you can mix and match the blueprints. You can look at just the traffic, just the supply lines, or a combined view where the traffic lines are red and the supply lines are blue, all overlaid on the same map.

3. The "Zoom and Filter" Feature

Sometimes a blueprint is too messy to read because it has too many tiny details (like every single number or repeated variable name).
ATLAS has three "magic buttons" (command-line flags) to clean it up without needing to re-scan the code:

  • Collapse: If the word "count" appears 50 times, this button merges them into one big node, like grouping all the "kitchen" rooms into a single "Kitchen Zone."
  • Blacklist: You can tell ATLAS, "Don't show me the numbers." It instantly removes all the numeric bricks from the map, leaving just the structure.
  • View Selection: You can ask for just the Traffic map, or just the Supply map, or both.

4. How Good Is It?

The authors tested ATLAS on a huge library of open-source code (TheAlgorithms).

  • Success Rate: It drew a correct "Traffic Blueprint" (Control Flow Graph) for 96.8% of C files and 91.7% of C++ files.
  • The "Broken" Files: Even for files that were so broken they couldn't be compiled by a normal computer, ATLAS still managed to draw the map correctly.
  • Real-World Use: It is already being used as the "eyes" for an AI system (SPARC) that writes test cases for code. Because ATLAS provides such a clear map of how the code moves, the AI can write better tests than it could before.

5. What It Can't Do (Yet)

ATLAS is amazing, but it's not magic. It admits it has some blind spots:

  • It doesn't track "ghost" pointers (where a pointer points to something hidden in memory) very well.
  • It struggles with complex C++ features like advanced templates or operator overloading.
  • It hasn't been tested on "megasized" projects (millions of lines of code) yet, only on smaller to medium-sized ones.

The Bottom Line

ATLAS is a tool that lets researchers and developers see the "skeleton" of C and C++ code without needing to build the whole body first. It aligns the structure, the movement, and the data flow into one unified map, making it much easier for computers (and humans) to understand, analyze, and improve software. It is free, open-source, and comes in a "Docker" box, meaning anyone can run it without installing a dozen different tools.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →