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

11.10.2018      19032

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

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

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

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

15.11.2023    655    VKuser24342747    1       

2

Новость ИТ-Новость Языки программирования

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

01.09.2023    1507    VKuser24342747    4       

2

Новость ИТ-Новость Языки программирования

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

28.08.2023    849    VKuser24342747    0       

2

Новость GitHub Искусственный интеллект

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

17.08.2023    1322    VKuser24342747    0       

1

Новость ИТ-Новость Языки программирования

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

28.07.2023    1513    VKuser24342747    0       

2

Новость GIT Искусственный интеллект ИТ-Новость Языки программирования Программист

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

10.07.2023    1400    VKuser24342747    0       

1

Новость GitHub ИТ-Новость

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

07.07.2023    1130    VKuser24342747    0       

3

Новость GitHub ИТ-Новость

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

06.07.2023    813    VKuser24342747    0       

1

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


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

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