ACM Transactions on Programming Languages and Systems (TOPLAS)
GALILEO: a strongly-typed, interactive conceptual language
ACM Transactions on Database Systems (TODS)
Top-down synthesis of divide-and-conquer algorithms
Artificial Intelligence
On the modes and meaning of feedback to transaction designers
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Maintaining state constraints in relational databases: a proof theoretic basis
Journal of the ACM (JACM)
Automatic generation of production rules for integrity maintenance
ACM Transactions on Database Systems (TODS)
Deriving incremental production rules for deductive data
Information Systems
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Automating first-order relational logic
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
The semantic data model: a modelling mechanism for data base applications
SIGMOD '78 Proceedings of the 1978 ACM SIGMOD international conference on management of data
Executable UML: A Foundation for Model-Driven Architectures
Executable UML: A Foundation for Model-Driven Architectures
DIAL: a programming language for data intensive applications
SIGMOD '80 Proceedings of the 1980 ACM SIGMOD international conference on Management of data
Transaction Repair for Integrity Enforcement
IEEE Transactions on Knowledge and Data Engineering
Consistency management with repair actions
Proceedings of the 25th International Conference on Software Engineering
Possum: An Animator for the SUM Specification Language
APSEC '97 Proceedings of the Fourth Asia-Pacific Software Engineering and International Computer Science Conference
B Model Animation for External Verification
ICFEM '98 Proceedings of the Second IEEE International Conference on Formal Engineering Methods
Automatic detection and repair of errors in data structures
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Special Feature: Epigrams on programming
ACM SIGPLAN Notices
Reasoning about static and dynamic properties in alloy: A purely relational approach
ACM Transactions on Software Engineering and Methodology (TOSEM)
Compiling mappings to bridge applications and databases
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
Symbolic animation of JML specifications
FM'05 Proceedings of the 2005 international conference on Formal Methods
IFM'05 Proceedings of the 5th international conference on Integrated Formal Methods
Towards an Operational Semantics for Alloy
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Contract-based data structure repair using alloy
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
An imperative extension to alloy
ABZ'10 Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z
Translation of Z specifications to executable code: Application to the database domain
Information and Software Technology
Hi-index | 0.00 |
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.