当前位置: X-MOL 学术Nat. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
CRN ++: Molecular programming language
Natural Computing ( IF 2.1 ) Pub Date : 2020-01-03 , DOI: 10.1007/s11047-019-09775-1
Marko Vasić , David Soloveichik , Sarfraz Khurshid

Synthetic biology is a rapidly emerging research area, with expected wide-ranging impact in biology, nanofabrication, and medicine. A key technical challenge lies in embedding computation in molecular contexts where electronic micro-controllers cannot be inserted. This necessitates effective representation of computation using molecular components. While previous work established the Turing-completeness of chemical reactions, defining representations that are faithful, efficient, and practical remains challenging . This paper introduces CRN++, a new language for programming deterministic (mass-action) chemical kinetics to perform computation. We present its syntax and semantics, and build a compiler translating CRN++ programs into chemical reactions, thereby laying the foundation of a comprehensive framework for molecular programming. Our language addresses the key challenge of embedding familiar imperative constructs into a set of chemical reactions happening simultaneously and manipulating real-valued concentrations. Although some deviation from ideal output value cannot be avoided, we develop methods to minimize the error, and implement error analysis tools. We demonstrate the feasibility of using CRN++on a suite of well-known algorithms for discrete and real-valued computation. CRN++ can be easily extended to support new commands or chemical reaction implementations, and thus provides a foundation for developing more robust and practical molecular programs.

中文翻译:

CRN ++:分子编程语言

合成生物学是一个快速发展的研究领域,有望在生物学,纳米制造和医学领域产生广泛的影响。一个关键的技术挑战在于将计算嵌入在无法插入电子微控制器的分子环境中。这需要使用分子成分有效地表示计算。尽管先前的工作建立了化学反应的图灵完备性,但定义忠实,有效和实用的表示形式仍然具有挑战性。本文介绍了CRN ++,这是一种用于对确定性(质量作用)化学动力学进行编程以进行计算的新语言。我们介绍其语法和语义,并构建翻译CRN的编译器++将程序转换为化学反应,从而为分子编程奠定了全面框架的基础。我们的语言解决了将熟悉的命令性结构嵌入同时发生的一组化学反应并操纵实际值浓度的关键挑战。尽管无法避免与理想输出值的某些偏差,但我们开发了使误差最小化的方法,并实施了误差分析工具。我们演示了在一组用于离散和实值计算的著名算法上使用CRN ++的可行性。CRN ++可以轻松扩展以支持新命令或化学反应实现,从而为开发更健壮和实用的分子程序提供了基础。
更新日期:2020-01-03
down
wechat
bug