stringtranslate.com

Лимбо (язык программирования)

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 Мартина Аткинса, Чарльза Форсайта, Роба Пайка и Говарда Трики был начат, но так и не выпущен.

Смотрите также

Ссылки

  1. ^ «Прикладное программирование Inferno» . витануова . витануова . Проверено 26 января 2021 г.
  2. ^ "Спецификация виртуальной машины Dis". Vita Nuova. 2000. Получено 2 февраля 2015 .
  3. ^ Лоренц Хюльсберген и Фил Уинтерботтом (1998). "Очень параллельная сборка мусора Mark and Sweep без мелкозернистой синхронизации" (PDF) . Международный симпозиум по управлению памятью 1998 года .

Внешние ссылки