← Últimos artículos
💻 computer science

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

ATLAS es una herramienta de línea de comandos de código abierto que genera árboles de sintaxis abstracta alineados, grafos de flujo de control y grafos de flujo de datos directamente a partir de archivos fuente de C y C++ sin requerir una compilación completa, produciendo representaciones de múltiples vistas en formatos JSON, DOT o PNG.

Autores originales: Jaid Monwar Chowdhury, Ahmad Farhan Shahriar Chowdhury, Humayra Binte Monwar, Mahmuda Naznin

Publicado 2026-07-02
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Jaid Monwar Chowdhury, Ahmad Farhan Shahriar Chowdhury, Humayra Binte Monwar, Mahmuda Naznin

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que tienes un castillo de Lego masivo e intrincado, construido con miles de diminutos ladrillos. Quieres entender cómo funciona, pero mirar el castillo terminado no es suficiente. Necesitas tres planos específicos:

  1. El Plano de la Forma: Cómo están apilados los ladrillos (Sintaxis).
  2. El Plano del Tráfico: Cómo caminaría una persona a través de las habitaciones y pasillos (Flujo de Control).
  3. El Plano de los Suministros: Cómo se mueven los materiales de una habitación a otra para construir cosas (Flujo de Datos).

Durante años, si querías estos planos para un tipo específico de castillo (código C y C++), tenías que contratar a una enorme cuadrilla de construcción para terminar la edificación primero. Si faltaba un solo ladrillo (un archivo o encabezado faltante), la cuadrilla se detenía y no obtenías ningún plano.

Entra ATLAS.

ATLAS es como un escáner súper inteligente e instantáneo al que no le importa si el castillo está terminado. Puede mirar un montón de ladrillos sueltos, una pared a medio construir o un castillo completo e instantáneamente dibujar los tres planos para ti.

Así es como funciona, usando analogías simples:

1. La regla de "Zona de Construcción Prohibida"

La mayoría de las herramientas son como arquitectos estrictos que dicen: "No puedo dibujar el mapa hasta que termines el edificio y me entregues el permiso oficial". Si te falta un solo archivo de encabezado (una pequeña hoja de instrucciones), se rinden.

ATLAS es diferente. Es como un detective que puede mirar un rompecabezas a medio terminar y decir: "No necesito la imagen en la caja para saber dónde va esta pieza". Puede analizar el código incluso si faltan partes del proyecto o si el código no se compilaría realmente. Trabaja directamente sobre el texto fuente bruto.

2. El sistema de "Etiqueta de Identificación Universal"

Normalmente, si obtienes un Plano de la Forma de una herramienta y un Plano del Tráfico de otra, utilizan diferentes sistemas de numeración. Es como si un mapa usara "Habitación 101" y el otro "El Pasillo Azul". No puedes combinarlos fácilmente.

ATLAS otorga a cada pieza de código una Etiqueta de Identificación Universal.

  • Una variable llamada x recibe el mismo ID en los planos de Forma, Tráfico y Suministros.
  • Debido a que todos comparten estas etiquetas, puedes mezclar y combinar los planos. Puedes mirar solo el tráfico, solo las líneas de suministro, o una vista combinada donde las líneas de tráfico son rojas y las líneas de suministro son azules, todo superpuesto en el mismo mapa.

3. La función de "Zoom y Filtro"

A veces, un plano es demasiado desordenado para leerlo porque tiene demasiados detalles diminutos (como cada número o nombre de variable repetido).
ATLAS tiene tres "botones mágicos" (flags de línea de comandos) para limpiar esto sin necesidad de volver a escanear el código:

  • Colapsar (Collapse): Si la palabra "count" aparece 50 veces, este botón las une en un solo nodo grande, como agrupar todas las "habitaciones de cocina" en una sola "Zona de Cocina".
  • Lista Negra (Blacklist): Puedes decirle a ATLAS: "No me muestres los números". Instantáneamente elimina todos los ladrillos numéricos del mapa, dejando solo la estructura.
  • Selección de Vista (View Selection): Puedes pedir solo el mapa de Tráfico, o solo el mapa de Suministros, o ambos.

4. ¿Qué tan bueno es?

Los autores probaron ATLAS en una enorme librería de código de código abierto (TheAlgorithms).

  • Tasa de éxito: Dibujó un "Plano de Tráfico" (Grafo de Flujo de Control) correcto para el 96.8% de los archivos C y el 91.7% de los archivos C++.
  • Los archivos "rotos": Incluso para los archivos que estaban tan rotos que no podían ser compilados por una computadora normal, ATLAS logró dibujar el mapa correctamente.
  • Uso en el mundo real: Ya se está utilizando como los "ojos" de un sistema de IA (SPARC) que escribe casos de prueba para código. Debido a que ATLAS proporciona un mapa tan claro de cómo se mueve el código, la IA puede escribir mejores pruebas de lo que podía antes.

5. Lo que no puede hacer (Aún)

ATLAS es increíble, pero no es magia. Admite que tiene algunos puntos ciegos:

  • No rastrea muy bien los punteros "fantasma" (donde un puntero apunta a algo oculto en la memoria).
  • Tiene dificultades con características complejas de C++, como plantillas avanzadas o la sobrecarga de operadores.
  • Aún no ha sido probado en proyectos "megatallados" (millones de líneas de código), solo en proyectos de tamaño pequeño a mediano.

La Conclusión

ATLAS es una herramienta que permite a investigadores y desarrolladores ver el "esqueleto" del código C y C++ sin necesidad de construir todo el cuerpo primero. Alinea la estructura, el movimiento y el flujo de datos en un mapa unificado, haciendo que sea mucho más fácil para las computadoras (y los humanos) entender, analizar y mejorar el software. Es gratuito, de código abierto y viene en una caja "Docker", lo que significa que cualquiera puede ejecutarlo sin instalar una docena de herramientas diferentes.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →