Skip to content

sllam/chrcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMPORTANT NOTICE!!!
===================

We have merged CHR^cp with MSRE!! It is now found in: https://github.com/sllam/msre . Don't worry, CHR^cp (CHR with comprehension patterns) is still part of MSRE. We are just consolidating all our eggs into one fancy basket! =)




Multiset Rewriting with Comprehensions
by Edmund S. L. Lam and Iliano Cervesato

* This implementation was made possible by an NPRP grant (NPRP 09-667-1-100, Effective Programming for Large Distributed Ensembles) from the Qatar National Research Fund (a member of the Qatar Foundation). 

############
Introduction
############

A prototype implementation of multiset rewriting with comprehension.

See our paper and technical report for details:

i. Constraint Handling Rules with Comprehension
http://www.qatar.cmu.edu/~sllam/my_papers/published/SLLAM_chr14.pdf

ii. "Optimized Compilation of Multiset Rewriting with Comprehensions"
http://www.qatar.cmu.edu/~sllam/my_papers/techreport/SLLAM_TR14-119.pdf

##################
Basic Requirements
##################

System Applications:
   - Python 2.7
   - MPI Distribution, preferably MPI-2
   - C++ Boost Libraries
   - System development libraries for Python and MPI

Non-standard Python packages:
   - ply (Python Lex-Yacc http://www.dabeaz.com/ply/)
   - z3Py: Python APIs for z3 SMT Solver (Check https://z3.codeplex.com/ for installation details)

* Currently only tested on Ubuntu, but do try on other platforms and feel free to report any bugs or issues to us!
** Apologies for the sparse instructions! More information to come soon! 

################
Acknowledgements
################

Many thanks to the following, who have made this prototype implementation possible:
  - Qatar Foundation, the sponsor of this project.
  - Curtis Schlak for excellent suggests on light-weight visitor pattern for Python.
  - People who worked on z3 SMT solver, for building such an awesome easy to use SMT solver with Python bindings.
  - People who worked on Claytronics, which has inspired our work here (Flavio Cruz, Frank Pfenning and Seth Goldstein). 

#####
Notes
#####

13 July 2014: 
  - There are some minor syntactic difference between the
    language implemented here, and that of presented in
    our technical report. We are currently working on finalizing
    the concrete syntax of our language and documentation, 
    For now, please refer to the examples contained in this
    package. Stay tuned for updates!
  - We are currently merging this code base with that of from 
    another project - Multi Set Rewriting for Ensembles (MSRE).
    In the near future, CHR^CP and MSRE will be a unified language:
    combining the idea of multiset rewriting with comprehensions,
    and decentralized execution of multiset rewritings.

About

Multiset Rewriting with Comprehensions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published