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

Возврат к списку

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

11.10.2018     

Техасские исследователи создали язык программирования (ЯП) для химиков. Он позволяет описывать химические формулы языком, понятным человеку, легко вносить изменения и проверять их.

Зачем нужен новый язык?

Биохимики давно пытаются разработать инструмент, который позволил бы выстраивать структуру требуемого вещества с необходимыми свойствами. Зачастую их можно предсказать, но этот метод не всегда дает необходимый результат. Работая над решением этой проблемы, ученые из Техасского университета в Остине, США, создали химический язык программирования. Он получил название 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/
Автор:
Александр Вашкевич Аналитик


Доводилось ли вам работать с машинными языками программирования?


Да, довольно часто (6.67%, 1 голосов)
6.67%
Совсем немного (40%, 6 голосов)
40%
Сталкивался с ними только на занятиях (20%, 3 голосов)
20%
Нет, не доводилось (33.33%, 5 голосов)
33.33%

Комментарии
Избранное Подписка Сортировка: Древо
1. PerlAmutor 30 11.10.18 14:49 Сейчас в теме
Думаю с машинными языками программирования работают так или иначе большинство программистов. Невозможно отлаживать программы на C/C++ или пытаться поломать игрушку с помощью CheatEngine не имея базовых знаний в ассемблере.
2. Infector 124 11.10.18 20:01 Сейчас в теме
Придумайте что-нибудь для законотворцев, чтобы яснее мысли излагали.
pm74; kamsky93; awk; nyam-nyam; +4 Ответить
3. vpaoli 25 12.10.18 11:46 Сейчас в теме
так это наш знакомый 1С . Меняем ПланСчетов, РегистрРасчета и т.п. на Улеводороды, Валентности и т.п. и получаем CRN++. Вообщем ничего нового.
Оставьте свое сообщение

См. также