Ada Semantic Analysis

ASIS is a library that gives applications access to the complete syntactic and semantic structure of an Ada compilation unit. This library is typically used by tools that need to perform some sort of static analysis on an Ada program.

ASIS, the Ada Semantic Interface Specification, is an international standard (ISO/IEC 15291:1995), and is designed to be compiler independent. Thus a tool that processes the standard ASIS representation of an Ada 95 program will work regardless of which ASIS implementation has been used.

ASIS-for-GNAT is AdaCore’s implementation of the ASIS standard, for use with the GNAT Pro Ada development environment and toolset. It supports Ada 95 and includes extensions for analyzing Ada 2005 code. For more information, please visit the reference manual.

Typical ASIS-for-GNAT applications include:

  • Static Analysis (property verification)
  • Code Instrumentation
  • Design and Document Generation Tools
  • Metric, Testing or Timing Tools
  • Dependency Tree Analysis Tools
  • Type Dictionary Generators
  • Coding Standards Enforcement Tools
  • Language Translators (e.g., to CORBA IDL)
  • Quality Assessment Tools
  • Source Browsers and Formatters
  • Syntax Directed Editors

For applications that need to analyze code written in any version of Ada (including Ada 2012 and 202x), the Libadalang library offers an alternative to, and a transition path from, ASIS-for-GNAT. Libadalang is a powerful and modern technology supporting full syntactic analysis of Ada source code and a comprehensive set of semantic queries, and it can work on code that is incomplete or otherwise invalid.