Limbo — это язык программирования для написания распределённых систем, который используется для написания приложений для операционной системы Inferno . Он был разработан в Bell Labs Шоном Дорвардом, Филом Уинтерботтомом и Робом Пайком . [1]
Компилятор Limbo генерирует архитектурно -независимый объектный код , который затем интерпретируется виртуальной машиной Dis или компилируется непосредственно перед запуском для повышения производительности. Поэтому все приложения Limbo полностью переносимы на все платформы Inferno.
Подход Limbo к параллелизму был вдохновлен коммуникационными последовательными процессами (CSP) Хоара , реализованными и измененными в более раннем языке Newsqueak Пайка и Alef Уинтерботтома .
Limbo поддерживает следующие функции:
Виртуальная машина Dis, которая выполняет код Limbo, представляет собой CISC-подобную виртуальную машину с инструкциями для арифметики, потока управления , перемещения данных, создания процессов , синхронизации и связи между процессами, загрузки модулей кода и поддержки типов данных более высокого уровня: строк, массивов, списков и каналов связи. [2] Она использует гибрид подсчета ссылок и сборщика мусора в реальном времени для циклических данных. [3]
Некоторые элементы дизайна Dis были вдохновлены микропроцессором AT&T Hobbit , который использовался в оригинальном BeBox .
Limbo использует определения в стиле Ada , например:
имя := тип значение ; имя0 , имя1 : тип = значение ; имя2 , имя3 : тип ; имя2 = значение ;
реализовать команду ; включить "sys.m" ; sys : Sys ; включить "draw.m" ; включить "ш.м" ; init ( nil : ref Draw -> Context , nil : list of string ) { sys = load Sys Sys -> PATH ; sys -> print ( "Hello World! \n " ); }
Третье издание операционной системы Inferno и языка программирования Limbo описано в учебнике Inferno Programming with Limbo ISBN 0-470-84352-7 (Chichester: John Wiley & Sons, 2003) Филлипа Стэнли-Марбелла. Другой учебник The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System Мартина Аткинса, Чарльза Форсайта, Роба Пайка и Говарда Трики был начат, но так и не выпущен.