Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming





The interactive transcript could not be loaded.



Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Jun 15, 2015

Google Tech Talk
June 9, 2015
(more info - click "show more")
Presented by Christian Schafmeister.

Introduction (0:00)
The beginning (0:45)
Mimicking proteins (1:51)
Spiroligomers: an alternative to proteins (6:16)
Applications of spiroligomers (8:18)
A spiroligomer that binds Mdm2 (11:16)
A spiroligomer that catalyzes a transesterification reaction (12:36)
Designing large molecules (15:36)
Developing a programming language for chemistry (17:29)
Clasp: A Common Lisp based on LLVM (20:24)
Automatic differentiation for chemistry force fields (20:43)
Writing code that builds molecules (25:08)
Why Common Lisp for chemistry? (25:46)
Interfacing C++ with Common Lisp (27:53)
Clasp: What is it? (31:36)
Automated analysis of C++ code built into Clasp (37:24)
How C++ is exposed to Clasp Common Lisp (39:35)
What is next for Clasp? (41:35)
Wrap up (43:40)
Questions and answers (45:30)


This talk describes our unique approach to constructing large, atomically precise molecules (called "Molecular Lego" or "spiroligomers") that could act as new therapeutics, new catalysts (molecules that make new chemical reactions happen faster) and ultimately to construct atomically precise molecular devices. Then I describe Clasp and CANDO, a new implementation of the powerful language Common Lisp. Clasp is a Common Lisp compiler that uses LLVM to generate fast machine code and it interoperates with C++. CANDO is a molecular design tool that uses Clasp as its programming language. Together I believe that these are the hardware (molecules) and the software (the CANDO/Clasp compiler) that will enable the development of sophisticated molecular nanotechnology.

Clasp is available at: https://github.com/drmeister/clasp
For more info see: https://chem.cst.temple.edu/directory...

More about Clasp
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.


When autoplay is enabled, a suggested video will automatically play next.

Up next

to add this to Watch Later

Add to

Loading playlists...