Skip to content

Java parser for the Boogie intermediate verification language

Notifications You must be signed in to change notification settings

boogie-org/boogieamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##Boogieamp

This is a Java parser for the Boogie intermediate verification language. Currently, this is work in progress and mostly used for our Joogie and GraVy projects. In the long run, we try to support more and more features of the actual Boogie language. Please look into the unit tests for more details on what is working and what not.

A general description of the Boogie language can be found in this paper. However, this project aims at parsing whatever Boogie can parse currently, so there is a slight difference in the syntax, and boogieamp can parse things that are not described in the paper above.

####Requirements

  • Java >= 7
  • Junit 4

####Usage
To get an idea how to use the library to parse, process, and create Boogie files look into our Java to Boogie translation or our gradual verifier.

If you plan to use the library in your project, just download the jar file.

####Status We use Travis CI to check the status of Boogieamp:

Build Status

If the status is red we do not yet pass all unit tests from other Boogie-based projects. However, this does not mean that the libaray is not usable. If you want to see examples of how the library can be used check our other projects.

####Related The following projects are related:

  • Ultimate, we stole most of the parser code from an early version of the Ultimate project.
  • Smack, a translation from llvm IR into Boogie
  • Jar2Bpl, a translation from Java bytecode into Boogie,
  • Boogie, a deductive verifier for the Booige language,
  • Corral, a whole program analyzer for Boogie,
  • Q Program Verifier, a verifier for Booige,
  • GraVy, a gradual verifier and infeasible code checker for Boogie.