Новый язык программирования для быстрого моделирования

18 февраль, 2015 - 12:09Леонід Бараш

Норвежские ученые разработали совершенно новый язык для более быстрого программирования и моделирования.

Программирование – трудоемкий процесс и может занять много лет, чтобы разработать даже базовый симулятор. Исследователи хотят упростить этот процесс. Они создали язык похожий на язык математики. Это позволяет им разделить рабочий процесс таким образом, чтобы уменьшить время необходимое для разработки симулятора. Математик может сосредоточиться на том, что знает лучше – области применения симулятора. Эксперт по программированию, с другой стороны, может сидеть и работать над транслятором для того, чтобы транслируемый код мог работать быстрее. Ему не придется беспокоиться о приложении.

В Департаменте прикладной математики в SINTEF исследователи разрабатывают методы и новые способы вычисления всего, от прогнозов погоды в аэропортах до тактического порядка футбольных команд Премьер-лиги. В данном проекте они сосредоточены на двух приложениях – определения путей, которыми течет нефть в ее природном резервуаре, и путей паводковых вод по ландшафту. Исходные коды используются для разработки имитационных средств, которые могут предсказать, что произойдет с нефтью в резервуаре, и куда хлынут наибольшие объемы паводковых вод. «Резервуар является жесткой губкой, содержащей нефть, - объясняет Андре Бродткорб (André Brodtkorb) из SINTEF. - Для того чтобы смоделировать процесс извлечения нефти, мы делим резервуар на небольшие сегменты или ячейки и описываем, как нефть мигрирует от ячейки к ячейке.

Эти вещи требуют времени. Обычно во время создания симулятора привлекается много людей для разработки программного кода. Они включают в себя математиков, физиков и программистов. «Проблема в том, что все они имеют свои собственные предметные области и навыки, - говорит Бродткорб. - Те, кто пишет исходный код для симулятора, не всегда полностью осведомлены о том, что делают математики и физики, и наоборот. И когда люди из разных областей пытаются прийти к соглашению, возникают недоразумения и требуется время, чтобы их устранить. Основные компании-разработчики ПО, как правило, располагают у себя всеми необходимыми специалистами. Но большинство научных программ разрабатываются отдельными лицами или небольшими группами. И им нужна помощь».

Создание симуляторов не является чем-то новым. Новшество в том, что исследователи хотят ввести в использование предметно-ориентированный язык – точный язык, который фокусируется на узко определенной области применения. Такой язык позволит им разрабатывать новые программы моделирования и в то же время гарантировать, что код правильный. Например, в области программирования существует классическая проблема, связанная с выбором правильных единиц, используемых для описания физических величин. Mars Climate Orbiter, запущенный NASA для изучения атмосферы Марса, разбился на планете в 1999 году. Это объясняется тем, что компания Lockheed Martin разработала имитационную модель с использованием британских единиц, тогда как NASA ожидало, что они будут метрические.

«Ошибка превратила 327 млн. долл. в дым, - сказал Бродткорб. - Мы создали систему безопасности для предотвращения вещей такого рода. Например, мы в исходном коде пишем инструкции, такие как "данная единица является метрической". Если кто-то затем пытается ввести внесистемные единицы, такие как "фут ", они будут получать сообщение об ошибке».

Другая проблема заключается в том, как сохранить контроль над всеми миллионами ячеек, которые составляют имитационную модель. В середине сложного процесса легко запутаться и потерять след отдельных ячеек. «Даже если что-то пойдет не так, результат может, тем не менее, показаться корректным. Если это произойдет, все может действительно пойти наперекосяк, и решения могут быть основаны на ложных предпосылках, - говорит Бродткорб. - Но в нашей системе была устранена возможность таких ошибок, как эти».
ФАКТЫ:
Проект «Симуляторы, которые можно написать самим» занял два года и был закончен 1 января 2015 года. Язык, разработанный исследователями, называется Equelle. Посетите веб-сайт http://equelle.org/, и вы можете играть с языком, используя браузер.

Новый язык программирования для быстрого моделирования

Новый язык, как язык математики. Это позволяет исследователям разделить рабочий процесс таким образом, чтобы уменьшить время, необходимое для разработки симулятора. Так же, как этой модели, которая вычисляет давление жидкости в шельфовом месторождении Норн