CodeSurfer API
Programmatic access to all CodeSurfer®
internal representations.
Overview
The optional CodeSurfer Programming API enables you to extend and
customize CodeSurfer to meet your project-specific needs. For example,
you can build specialized analyses or integrate CodeSurfer with other
tools. Leading companies worldwide have licensed the CodeSurfer
Programmable Package for their program-analysis needs. In addition,
the CodeSurfer Programmable Package has been used by researchers at
over 100 universities.
Included Features
The programming API is bundled with the CodeSurfer Programmable
Package, which includes:
- Full programmatic access to all program representations
calculated by CodeSurfer. The Core API consists of 19 libraries
that contain 322 fully-documented program-analysis functions. In
addition, an Abstract Syntax Tree (AST) library with pattern
matching is provided.
- Development shell. An interactive script interpreter is provide
so you can rapidly prototype your scripts.
- Development tools. When you write a script, it is useful to
view the details of CodeSurfer’s representation of a sample
project. A collection of browsers are provided for this
purpose.
- Batch-mode processing. You can run scripts from the command
line.
Program Representations
Deep-structure representations:
- Normalized ASTs
- Points-to information
- Call graph
- Indirect variable usage
- Control and data dependence
- Per-procedure non-local variable usage
- Per-procedure I/O dependence
|
Surface-structure representations:
- ASTs
- Symbol table
- Direct variable usage
- CFGs
- Basic blocks
|