Тёмный

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

Google TechTalks
Подписаться 346 тыс.
Просмотров 49 тыс.
50% 1

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)
ABSTRACT
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: github.com/drmeister/clasp
For more info see: 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 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.

Наука

Опубликовано:

 

28 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 57   
@offmeds2nite
@offmeds2nite 9 лет назад
"C++ templates are to common lisp macros, what IRS tax forms are to poetry." Beautiful.
@deleteallusers
@deleteallusers 8 лет назад
+offmeds2nite Yea, yea, and if he'd used the term political poetry, it would have actually leverage the correctness meter to move in the positive direction. Your forgetting to whom you actually answer to! He should have used Political Correctness !
@amcmr2003
@amcmr2003 6 лет назад
Sad he's forced to use it at all. Is the need for those libraries so unavoidable? They should be ported to C/Lisp only, there could be a translation layer but the problem is the current maintenance.
@ThanassisTsiodras
@ThanassisTsiodras 9 лет назад
This was magnificent - I have worked (and played!) over the last two decades with many of the SW technologies shown here, but seeing them applied across disciplines to create molecular machines... I am just speechless. I'd never expect a scientist from a different field to get so deep into mine - amazing work.
@christianschafmeister9124
@christianschafmeister9124 9 лет назад
Thanassis Tsiodras, thank you very much!
@christianschafmeister9124
@christianschafmeister9124 9 лет назад
Hi, I'm Christian Schafmeister. Thank you so much for the nice comments! I just want to point out that this work was all done with your tax dollars. This work was made possible by support from the National Institute of Health (NIGMS), the National Science Foundation (NSF) and the Defense Threat Reduction Agency (DOD:DTRA).
@agumonkey
@agumonkey 7 лет назад
Hello Christian, are you still working on computer aided spiroligomer design and clasp ?
@christianschafmeister9124
@christianschafmeister9124 7 лет назад
Yes I am.
@agumonkey
@agumonkey 7 лет назад
Amazing, I didn't expact an answer so quick. I went to a talk by Nicolas Schabanel last month, about DNA bricks to implement game of life and gliders as biomolecular machines. Couldn't help but to think about your project. They have the same "turing completeness" in theory but so far the "program" they can assemble are in the order of 500 DNA bricks (above that error rate is too high). In case you didn't know about it, here's his academic page: www.irif.fr/users/nschaban/index see the latest publications about dna folding, oritatami. It's as "simple" as brilliant. I hope it inspires you ideas, motivation or collaboration. (the video and slides are not in my posession, they say they will upload this in the summer). Bye
@MzGoodieGurl
@MzGoodieGurl 7 лет назад
Christian Schafmeister soop zzzjoon
@adrianapantalone1997
@adrianapantalone1997 6 лет назад
Christian Schafmeister
@koredeaderele1666
@koredeaderele1666 4 года назад
i come back to watch this every so often for inspiration
@StephenPaulKing
@StephenPaulKing 9 лет назад
Check out Marius Buliga for a form of lambda calculus that has a topological representation. It maps naturally to molecules and is a model of computation.
@franklemanschik_de
@franklemanschik_de 11 месяцев назад
Highly Inspirational
@frydac
@frydac 9 лет назад
Too bad it was only one hour, not knowing much about chemistry and having had a course or 2 on compilers a decade ago, I had a hard time keeping up at times. Though I feel it was reduced enough for me to appreciate the gist of the chalanges. Impressive and inspiring talk/work.
@christianschafmeister9124
@christianschafmeister9124 9 лет назад
Frydac Thank you, I'm going to give a followup with examples. Stay tuned.
@RichardBrooksby
@RichardBrooksby 9 лет назад
Very nice to have my work described as "a jet engine"!
@christianschafmeister9124
@christianschafmeister9124 9 лет назад
Richard Brooksby Yes, when I think of all of the objects moving around in memory I think of a jet turbine. If a ball bearing (loose pointer) was dropped into it, it would tear itself apart (as would any C/C++ program, although maybe it would take a little longer).
@koredeaderele1666
@koredeaderele1666 5 лет назад
this is fucking amazing. so inspired by this talk
@orsenthil
@orsenthil 9 лет назад
"C++ template programming is to common lisp macros, as what IRS Tax Forms is to poetry." Hilarious at ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8X69_42Mj-g.htmlm42s
@vijay0
@vijay0 9 лет назад
15 years back, I took a clisp book from our college library.. There were simply too many parenthesis.. 😭
@vyrsh0
@vyrsh0 4 месяца назад
​@@vijay0in India most libraries are filled with Indian books when the western counterparts are much superior. Our "the c programming language" was by some Indian author rather than kernighan.
@ShaunakDe
@ShaunakDe 6 лет назад
This man literally is curing cancer.
@amcmr2003
@amcmr2003 6 лет назад
much more than *merely* cancer.
@mechadense
@mechadense 7 лет назад
I highly recommend checking out the slides of the INFAPM - Workshop where Christian Schafmeister attended as speaker shortly after this google tech talk. The workshop was on August 5-6, 2015 energy.gov/eere/amo/downloads/integrated-nanosystems-atomically-precise-manufacturing-workshop-august-5-6-2015 Sadly it seems (as I currently understand it) that there was only a concept video made of a "system-level tech demo" and not a "coarse-block APM system" (the terms are from the slides). A concept video of a "coarse-block APM system" (like a soup of rudimentary site activation printers) would have featured lots of foldamers (possibly including Schafmeisters spiroligiomers) and these light driven actuator molecules. The video that was made was heavily focused on nanotube usage which are *much* harder to handle than foldamers. The (difficult) setup of such a nanotube-centric system would likely require the usage of an SPM tip reducing this exercise to a one off "system-level tech demo".
@Mark-zk7uj
@Mark-zk7uj 5 лет назад
Was the "friend at NASA" Ron Garrett by chance?
@aoeu256
@aoeu256 5 лет назад
Tl;dr Python no have macros thus can’t optimize
@wrburdick
@wrburdick 9 лет назад
So is anyone using Clasp as just a garbage collected C++ environment?
@amcmr2003
@amcmr2003 6 лет назад
hahahahahahahahah
@vfclists
@vfclists 9 лет назад
switch to Nim
@Kenbomp
@Kenbomp 5 лет назад
GraphviZ 42.44 visualuEr , freenode chat #clasp. Lisp freenide 45.45
@NihilIslands
@NihilIslands 9 лет назад
Is anyone thinking of Terminator Kristana Loken?!
@NihilIslands
@NihilIslands 9 лет назад
***** What, being killed by a self multiplying molecule of methane?! Bring some fire, dead.I've seen more molecules of methane than organic. So, they are more like self-combustive organisms.
@christianschafmeister9124
@christianschafmeister9124 9 лет назад
Nihil Islands Nope, she's far prettier than I am.
@amcmr2003
@amcmr2003 6 лет назад
+ Christian Schafmeister hahahahahahaha!
@StephenPaulKing
@StephenPaulKing 9 лет назад
Eventually, consumer products, devices, even large things like spaceships will be "grown". (Any Babylon 5 fans out there?)
@amcmr2003
@amcmr2003 6 лет назад
yep.
@trejohnson7677
@trejohnson7677 3 года назад
those porky the pig moments. i get it.
@amitpr8630
@amitpr8630 8 лет назад
Great talk, but why not just use clojure.
@79maxwellian
@79maxwellian 5 лет назад
It's slow for maths because of the JVM
@scandalasdog
@scandalasdog 9 лет назад
The minds of men eh ? take that Mother Nature, your days are numbered.
@amcmr2003
@amcmr2003 6 лет назад
not quite.
@amcmr2003
@amcmr2003 6 лет назад
At last someone who knows what he's doing, geez! otoh who's the nitwit at Q&A?! suggesting to debug lisp macros directly with gdb, correct answer is *YOU DON'T!* , have you actually used a REPL like ever? even at 2x, q&a simply doesn't justify my time anymore.
@integralpanther
@integralpanther 6 лет назад
This man could have saved two years of his time by just hiring a professional C++ programmer. And now? We have another implementation of a compiler for a language that already has enough compilers. Especially given that there exist better alternatives like Clojure makes it even worse. My Message: use the stuff how it is thought and only invent new stuff it its really needed (and not just for getting attention).
@Kenbomp
@Kenbomp 5 лет назад
I think he would have spent equal amount of time to explain it too the programmer as to do it himself. Plus we have a new tool. It's not like he's charging for it. He made it open.
@PixelOutlaw
@PixelOutlaw 5 лет назад
C++ and Common Lisp are both commonly written in an Imperative way so they are a bit closer when mixing concepts from wrapped libraries.
@ishahab3517
@ishahab3517 8 лет назад
The technical parts of your project are incredibly interesting and fascinating. But there is a "but": your chemical part (the most important one) seems just put/built around the evolutionist theory: concrete, real "beneficial mutations" (not seen one such thing in whole observable history), plus what basically amounts to billions/trillions(?) of trial-and-error... My prediction is: you (and all of your successors) will run out of time/patience/age prior to achieve anything really useful. P.S. Just face it: evolution didn't happen. It's the very show-stopper to real science (hard as it may sound to current minds...).
@odomobo
@odomobo 8 лет назад
+Ish Ahab I don't believe he mentioned evolution once during the talk. The technology he described has nothing to do with evolution. He is building tools to engineer inorganic 3-dimensional nanostructures. Evolution is a process which allows biological organisms to adapt to their environment.
@DavidVaughan00
@DavidVaughan00 6 лет назад
There's pretty massive evidence for evolution, and it's the only theory we have that makes sense of what we see in nature. It is very rigorously supported by all available data.
@vyrsh0
@vyrsh0 4 месяца назад
We have seen evolution happen within human history when our ancestors used to describe some organisms as something but these days they are something else. For example bananas just a few thousand years ago were full of seeds and these days we can't even see the seeds in them.
@telesniper2
@telesniper2 7 лет назад
longwinded and pointless
@m3tafunj
@m3tafunj 6 лет назад
I wish the down votes actually did something.
@-leovinci
@-leovinci 3 года назад
The only sadness I come across, is the WebSocket supports no that perfect, currently I'm using Hunchentoot+Hunchensock
Далее
Practical Common Lisp
1:12:10
Просмотров 96 тыс.
I Built a EXTREME School Bus!
21:37
Просмотров 1,9 млн
What is the Curse of Lisp?
25:09
Просмотров 26 тыс.
Lets LISP like it's 1959
48:01
Просмотров 80 тыс.
Practical Common Lisp
1:12:05
Просмотров 34 тыс.
Julia: to Lisp or not to Lisp?
1:04:53
Просмотров 22 тыс.
The Art of Code - Dylan Beattie
1:00:49
Просмотров 4,7 млн
Code vs Data (Metaprogramming) - Computerphile
7:38
Просмотров 106 тыс.
iPhone 16 - 20+ КРУТЫХ ИЗМЕНЕНИЙ
5:20