Skip to content

Commit 6316767

Browse files
committed
Rewrote intro.
1 parent ad5b0cd commit 6316767

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

README.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
[SMACK](http://smackers.github.com/smack/) is a modular software verification
2-
infrastructure. The main purpose of SMACK is to lower the bar for experimenting
3-
with software verification and quickly prototyping custom software verifiers.
4-
To achieve that, SMACK relies on the well-known [LLVM](http://www.llvm.org)
5-
compiler infrastructure for its front-end, and
6-
[Boogie](http://boogie.codeplex.com) intermediate verification language for its
7-
back-end. Such separation of concerns and modularity make implementing various
8-
additions and extensions to SMACK relatively easy. Furthermore, the open
9-
architecture of SMACK encourages prototyping custom software verifiers on top
10-
of SMACK.
1+
At its core, SMACK is a translator from the [LLVM](http://www.llvm.org)
2+
compiler's popular intermediate representation (IR) into the
3+
[Boogie](http://boogie.codeplex.com) intermediate verification language (IVL).
4+
Sourcing LLVM IR exploits an increasing number of compiler frontends,
5+
optimizations, and analyses. Targeting Boogie exploits a canonical platform
6+
which simplifies the implementation of algorithms for verification, model
7+
checking, and abstract interpretation. The main purpose of SMACK is to decouple
8+
the implementations of verification algorithms from the details of source
9+
languages, and enable rapid prototyping on production code. Our initial
10+
experience verifying C language programs is encouraging: SMACK is competitive
11+
in SV-COMP benchmarks, is able to translate large programs (100 KLOC), and is
12+
used in several verification research prototypes.
1113

1214
## A Quick Demo
1315

0 commit comments

Comments
 (0)