Параллельное программирование на крошечной Arduino? Вы шутите? Особенно, когда используемый язык называется occam-pi, а набор инструментов называется «Сантехника».
Параллельное программирование, кажется, сейчас на первом месте в списке интересов, и «Сантехника» — это новый набор инструментов, созданный с использованием occam-pi, варианта на occam. Оккам — это язык параллельной обработки, который сегодня мало используется, но претендует на то, что он оказал влияние на многие другие языки. Оккам был представлен как основной язык программирования для Transputer, неудачная попытка представить процессор, предназначенный для параллелизма (конец 1980-х). Оккам-пи добавляет элементы Пи-исчисления, формализма для описания параллельных вычислений.
Если вы думаете, что Оккам-пи не кажется простым способом работы с параллелизмом, здесь на помощь приходит сантехника. Он должен быть настолько простым в использовании, что его могут использовать неспециалисты, такие как художники и дизайнеры. Он также нацелен на Arduino с открытым исходным кодом через виртуальную машину Transterpreter.
Как вы могли догадаться, виртуальная машина Transterpreter разработана таким образом, чтобы имитировать оригинальную архитектуру Transputer на любой машине, на которой она работает — так что в целом это становится немного барочным с точки зрения архитектуры. Transterpreter работает на различных машинах, включая встроенные системы разработки, такие как Lego Mindstorms, и настольные компьютеры, такие как Windows, Linux, OSX, DOS и так далее.
Набор инструментов для сантехники основан на Transterpreter и языке occam-pi, но на данный момент он работает только в операционной системе Mac OSX — скоро будут выпущены среды разработки WIndows и Linux. Несмотря на то, что он был разработан для нетехнических пользователей, Plumbing используется с помощью текстового редактора и стандартного компилятора и выглядит явно устаревшим по сравнению с другими «языками», предназначенными для неспециалистов, таких как пользователи системы графического программирования Mindstorms и Scratch, язык программирования для начинающих. Однако это делает параллельное программирование доступным на недорогом, но маломощном устройстве Arduino.
Параллельное программирование во встроенных системах — не такое уж редкое явление, но все, что делает его проще и надежнее, — хорошая идея. Нам придется подождать, чтобы увидеть, приживется ли сантехника.
Вы можете прочитать интервью с одним из основных сторонников сантехники Мэттом Джадудом на сайте O’Reilly. В этом году на конференции O’Reilly OSCON — Open Source Convention — по сантехнике под названием «Сантехника: параллельное программирование для художников и мастеров». Также доступна книга в формате PDF, которую можно бесплатно загрузить.