Лимбо (язык программирования)
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2013 г. ) |
Парадигма | Параллельно |
---|---|
Разработано | Шон Дорвард, Фил Уинтерботтом, Роб Пайк |
Разработчик | Bell Labs / Vita Nuova Holdings |
Впервые появился | 1995 год |
Дисциплина набора текста | Сильный |
ТЫ | Инферно |
Лицензия | GNU GPL v2, см. УВЕДОМЛЕНИЕ в подпапке Limbo архива. |
Веб-сайт | www |
Основные реализации | |
Дис виртуальная машина | |
Под влиянием | |
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.
Ссылки [ править ]
- ^ «Прикладное программирование Inferno» . витануова . витануова . Проверено 26 января 2021 г.
- ^ «Спецификация виртуальной машины» . Вита Нуова. 2000 . Проверено 2 февраля 2015 г.
- ^ Лоренц Хюльсберген и Фил Уинтерботтом (1998). «Очень параллельная маркировка и очистка мусора без точной синхронизации» (PDF) . 1998 Международный симпозиум по управлению памятью .
Внешние ссылки [ править ]
- Страница Vita Nuova на Limbo
- Спуск в Лимбо Брайан Керниган
- Язык программирования Limbo Денниса М. Ритчи и Приложение Виты Нуова.
- «Инферно-программирование с лимбо», Филип Стэнли-Марбелл
- Поточное программирование в стиле Bell Labs CSP.
- Исходный код Dis , заархивирован из оригинала 21 сентября 2017 г. , получен 20 сентября 2017 г.
- Дизайн виртуальной машины Inferno Vita nuova .
- «Дизайн Dis VM», Inferno (4-е изд.), Cat V.
- «Спецификация Dis VM», Inferno (4-е изд.), Cat V.