Техасские ученые создали язык программирования для биохимических реакций
Техасские ученые создали язык программирования для биохимических реакций

Техасские исследователи создали язык программирования (ЯП) для химиков. Он позволяет описывать химические формулы языком, понятным человеку, легко вносить изменения и проверять их.
Зачем нужен новый язык?
Биохимики давно пытаются разработать инструмент, который позволил бы выстраивать структуру требуемого вещества с необходимыми свойствами. Зачастую их можно предсказать, но этот метод не всегда дает необходимый результат. Работая над решением этой проблемы, ученые из Техасского университета в Остине, США, создали химический язык программирования. Он получил название CRN++.
Молекулы взаимодействуют между собой посредством химических реакций, а CRN++ позволяет описать этот процесс математическим языком и запрограммировать биохимическую систему на определенные действия. Это похоже на принцип действия химического контроллера. С помощью CRN++ можно описать любые типы химических реакций.
Авторы нового ЯП поясняют, что благодаря их проекту ученые могут перевести сложные реакции в цифровой формат. Это позволит написанный на CRN++ код воспроизводить в неизменном виде на любом компьютере с одним и тем же результатом. Также появляется возможность изменять и модифицировать написанные алгоритмы, искать в них ошибки и при этом не использовать долгие и трудоемкие расчеты.
Особенности реализации
Ключевой особенностью реализации разработки стала возможность учитывать множество биохимических факторов и моделировать их взаимодействие. Авторы CRN++ относят созданный язык к императивной парадигме программирования. Несмотря на то, что код может показаться похожим на ассемблер, разработчики выступают против такого сравнения. По их словам, CRN++ не следует относить к машинным языкам – специфика описания химических реакций требует частого использования абстракций, поэтому проект ученых работает на более высоком уровне.
Пример реализации алгоритма, вычисляющего числа Фибоначчи на языке CRN++:
Последовательность Фибоначчи – математическая последовательность, каждый член которой является суммой двух предыдущих. Если энный член последовательности обозначается хn, то для всей последовательности справедливым будет уравнение: хn+2=хn+хn+1, первыми двумя членами которого будут x1=l и x2=1. Порядок последовательности при этом таков: 1, 1, 2, 3, 5, 8, 13, 21..., следующим числом будет 34, так как сумма 13 и 21 равна 34 и т.д.
Также авторы CRN++ проводят параллель с другими популярными языками вроде C, Java или Python. Разработка преследует те же цели, что и эти ЯП – упростить представление машинного кода для человека и дать инструменты для краткого описания сложных структур данных. Поэтому в CRN++ можно встретить привычные конструкции if/else и циклы. Чаще всего для программирования химических реакций применяются последовательные ветвящиеся алгоритмы, что также роднит новый ЯП с другими высокоуровневыми представителями императивной парадигмы.
«Мы предлагаем язык программирования, который соответствует всем типам химических реакций. При этом CRN++ – язык с открытым кодом, так что ученые могут вносить в него свои поправки и улучшать так, как им необходимо», – комментирует разработку Марко Васик, аспирант Техасского университета, один из авторов проекта.
Исходный код языка и примеры использования доступны на GitHub. Техническая документация опубликована на сайте библиотеки Корнеллского университета.
Проблемы биохимического программирования
Главный недостаток CRN++ на данный момент – погрешности при описании химических реакций. Из-за того, что язык манипулирует реальными показателями концентраций биохимических элементов, не всегда удается достичь идеального выходного значения – неизбежно встречаются отклонения.
Сейчас ученые пытаются минимизировать количество ошибок, используя доступные инструменты анализа.
Источник: https://infostart.ru/journal/news/tekhnologii/tekhasskie-uchenye-sozdali-yazyk-programmirovaniya-dlya-biokhimicheskikh-reaktsiy_920882/