Learning Atlas

From AtlasWiki
Revision as of 14:23, 15 October 2015 by Dgriffen (Talk | contribs) (hide more TODOs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Atlas is a program analysis platform. At its core, Atlas uses a heterogeneous, attributed, directed graph data structure as an abstraction to represent the essential aspects of the program’s syntax and semantics (structure, control flow, and data flow), which are required to reason about software. Atlas constructs this graph from a set of software projects provided by the user. Atlas offers an expressive query language for users to write composable analyzers. Analyzers compute results in the form of subgraphs relevant to the query, which can be visualized. Based on the resulting subgraph, users can issue further queries, possibly involving information beyond specific program artifacts.

If none of that made any sense, don't worry! We will be taking it slow in this tutorial series and giving you a solid foundation to get started with Atlas.

This tutorial series was last tested with: Atlas 2.0.5.


This tutorial series is intended to get you up and running with Atlas. In these tutorials we will assume you have little to no experience in program analysis. If that's true then don't worry! You are about to learn just how powerful you can be when you wield a tool like Atlas! Before we get started, you will want to make sure you are decently familiar with the basic language features of Java. If not you might want to go brush up a bit before moving on to the next sections.

The sections below outline how to get Atlas installed and setup. Then we will be getting our hands dirty by jumping in and learning some program analysis concepts and how they translate to Atlas. Finally we take a look at a few practical applications of Atlas, which should give you some ideas of what you could use Atlas for yourself!


  1. Atlas Preferences
  2. Configuring C Projects
  3. Indexing Workspace
  4. Toolbox Projects
  5. Troubleshooting

Program Analysis Basics

  1. Atlas Shell
  2. Basic Queries
  3. Common Queries
  4. Attributes and Tags
  5. Atlas Schema
  6. Modifying the Universe


  1. Discovering Valid Java Main Methods
  2. Identifying Exotic Language Feature Usage

Example Applications

  1. Analyzing Android Permission Usage