Alchemy: Transmuting Base Alloy Specifications into Implementations

Shriram Krishnamurthi, Daniel J. Dougherty, Kathi Fisler, Daniel Yoo

ACM SIGSOFT International Symposium on the Foundations of Software Engineering, 2008


Alloy specifications are used to define lightweight models of systems. We present Alchemy, which compiles Alloy specifications into implementations that execute against persistent databases. Alchemy translates a subset of Alloy predicates into imperative update operations, and it converts facts into database integrity constraints that it maintains automatically in the face of these imperative actions.

In addition to presenting the semantics and an algorithm for this compilation, we present the tool and outline its application to a non-trivial specification. We also discuss lessons learned about the relationship between Alloy specifications and imperative implementations.


The official version is in the ACM Digital Library.



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.