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

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

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

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

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

Сейчас ученые пытаются минимизировать количество ошибок, используя доступные инструменты анализа.

Автор:
Аналитик

См. также

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    828    VKuser24342747    1       

2

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1924    VKuser24342747    4       

2

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    1158    VKuser24342747    0       

2

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    1568    VKuser24342747    0       

1

Спустя пять лет разработки вышел релиз компилятора для языков программирования Python и Cython – проект Cython 3.0. Он позволяет транслировать код Python в представление на C/C++.

28.07.2023    1743    VKuser24342747    0       

2

GitLab представила собственную нейросеть Code Suggestions, способную генерировать код по запросу на естественном языке. ИИ-помощник поддерживает работу с 13 языками программирования.

10.07.2023    1758    VKuser24342747    0       

1

GitHub Enterprise Server 3.9 вышел в публичный доступ. Обновление затронуло функции для совместной работы, обеспечения безопасности и управления проектами.

07.07.2023    1316    VKuser24342747    0       

3

GitHub представил бета-версию action-permissions – инструмента, который позволяет отслеживать права доступа для рабочих процессов Actions. Система подскажет, какие разрешения должны быть для успешного запуска.

06.07.2023    974    VKuser24342747    0       

1

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


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

Комментарии

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

Оставьте свое сообщение