Исследователи из Университета Карнеги-Меллон разработали новый язык программирования, с помощью которого можно писать программы для компьютеров, не имеющих надежного источника питания.
Об этом сообщает N+1 со ссылкой на сайт университета.
Новый язык получил название Chain. Написанные с его помощью программы после потери компьютером питания все равно могут без каких-либо ошибок завершить свое исполнение, выдав при этом корректные данные.
Исследователи предположили, что в будущем могут быть созданы компьютеры, которые используют для своей работы энергию, добываемую из окружающей среды. Такие системы могут использоваться, например, для космических исследований. Новые компьютеры не всегда смогут обеспечивать себя необходимой энергией, а значит, будут терять питание. Это в свою очередь будет приводить к некорректному исполнению программ, выдаче неправильных вычислений или масштабным программным сбоям.
Все существующие языки программирования не производят надежного сохранения данных промежуточных операций. При этом существуют программы и операционные системы, предполагающие возможность потери питания компьютером. Они работают по принципу контрольных точек, сохраняя результаты своей работы через строго заданные промежутки времени. Такие программы расходуют много энергии и вычислительной мощности на восстановление после сбоя.
Новый язык программирования Chain, утверждают разработчики, лишен недостатков операционных систем, работающих по принципу контрольных точек. В нем реализованы сразу два механизма сохранения промежуточных данных: разделение процесса на небольшие задачи с сохранением состояния задачи (завершена или нет) и результатов ее исполнения (например, итогов вычисления).
При нормальном питании любая программа, написанная с помощью Chain, исполняется от задачи к задаче. Так по цепочки результаты каждого этапа передаются до конца программы.
В случае если происходит сбой, исполнение программы возобновляется с той задачи, на которой было потеряно питание.