Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming
ABSTRACT
Clasp is an implementation of Common Lisp that interoperates with C++ and uses LLVM as its backend. It is available at https://github.com/drmeister/clasp. The goal of Clasp is to become a performant Common Lisp that can use C++ libraries and interoperate with LLVM-based tools and languages. The first sophisticated C++ library with which Clasp interoperates is the Clang C/C++ compiler front end. Using the Clang library, Common Lisp programs can be written that parse and carry out static analysis and automatic refactoring of C/C++ code.
This facility is used to automatically analyze the Clasp C++ source code and construct an interface to the Memory Pool System compacting garbage collector. The primary purpose of Clasp is to act as a performant language for scientific computing that will be used to design sophisticated new molecular devices, catalysts and therapeutic molecules based on our “Molecular Lego” technology. Clasp is a general programming language that will support many other applications.
About the Speaker:
Christian Schafmeister visited Google’s Cambridge, MA office to deliver the talk “Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming”. Christian is Associate Professor of Chemistry at Temple University.
Research projects within his group will use the tools of synthetic chemistry, molecular biology, and X-ray crystallography to develop a universal molecular scaffold that would allow the systematic design, construction, and investigation of macromolecules that display chemical functionality in three-dimensional space. A scaffold like this will allow the design and synthesis of new catalysts, molecular sensors, and ultimately molecular machines. His group will use synthetic chemistry to synthesize molecular building blocks that they will couple to each other through pairs of bonds to construct rigid macromolecules with diverse and programmable shapes. His group has developed computer software that allows the computer-aided design of these molecules to carry out specific functions.