Jump to content

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

Лимбо
Парадигма Параллельно
Разработано Шон Дорвард, Фил Уинтерботтом, Роб Пайк
Разработчик Bell Labs / Vita Nuova Holdings
Впервые появился 1995 год ; 29 лет назад ( 1995 )
Дисциплина набора текста Сильный
ТЫ Инферно
Лицензия GNU GPL v2, см. УВЕДОМЛЕНИЕ в подпапке Limbo архива.
Веб-сайт www .витануова /инферно /лимбо .html
Основные реализации
Дис виртуальная машина
Под влиянием
C , Паскаль , CSP , Алеф , Ньюсквик
Под влиянием
Бесконечный Python , Go , Rust

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 , например:

name := type value;
name0,name1 : type = value;
name2,name3 : type;
name2 = value;

Привет, мир [ править ]

implement Command;

include "sys.m";
    sys: Sys;

include "draw.m";

include "sh.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 (Чичестер: John Wiley & Sons, 2003), Филипп Стэнли-Марбелл . Еще один учебник — The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System Мартина Аткинса, Чарльза Форсайта, Роба Пайка и Говарда Трики — был начат, но так и не выпущен.

См. также [ править ]

  • Инферно система Операционная
  • Алеф , предшественник Лимбо
  • Plan 9 от Bell Labs , операционная система
  • Go , аналогичный язык от Google
  • AT&T Hobbit — архитектура процессора, вдохновившая Dis VM.

Ссылки [ править ]

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

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: da8b26b082291257f267a0df4b18b660__1691021640
URL1:https://arc.ask3.ru/arc/aa/da/60/da8b26b082291257f267a0df4b18b660.html
Заголовок, (Title) документа по адресу, URL1:
Limbo (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)