CRN++: Molecular Programming Language
CRN++: Molecular Programming Language
复制标题
CRN:分子编程语言
DOI:
10.1007/978-3-030-00030-1_1
复制
发表时间:
2018
期刊:
影响因子:
--
通讯作者:
Khurshid, S
中科院分区:
文献类型:
--
作者:
Vasic, M;Soloveichik, D;Khurshid, S
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 introducesCRN++, a new language for programming deterministic (mass-action) chemical kinetics to perform computation. We present its syntax and semantics, and build a compiler translatingCRN++ 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 usingCRN++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.