Limbo (язык программирования) - Limbo (programming language)

Лимбо
Парадигма Одновременный
Разработано Шон Дорвард, Фил Уинтерботтом, Роб Пайк
Разработчик Bell Labs / Vita Nuova Holdings
Впервые появился 1995 ; 26 лет назад  ( 1995 )
Печатная дисциплина Сильный
Операционные системы Inferno
Лицензия Открытый источник
Веб-сайт www .vitanuova .com / inferno / limbo .html
Основные реализации
Виртуальная машина Dis
Под влиянием
C , Паскаль , CSP , Алеф , Newsqueak
Под влиянием
Безстековый Python , Go , Rust

Limbo - это язык программирования для написания распределенных систем и язык, используемый для написания приложений для операционной системы Inferno . Он был разработан в Bell Labs по Шон Дорвард , Фил Уинтерботтом , и Роб Пайк .

Компилятор Limbo генерирует архитектурно- независимый объектный код, который затем интерпретируется виртуальной машиной Dis или компилируется непосредственно перед запуском для повышения производительности. Поэтому все приложения Limbo полностью переносимы на все платформы Inferno.

Подход подвешенном к параллельности был вдохновлен Хоара «s сообщающихся последовательных процессов (CSP), как это реализовано и внесены изменения в ранее Пайка Newsqueak языка и Уинтерботтом в Alef .

Особенности языка

Limbo поддерживает следующие функции:

Виртуальная машина

Виртуальная машина Dis, выполняющая код Limbo, представляет собой CISC-подобную виртуальную машину с инструкциями по арифметике, потоком управления , перемещением данных , созданием процессов , синхронизацией и обменом данными между процессами, загрузкой модулей кода и поддержкой типов данных более высокого уровня: строки, массивы, списки и каналы связи. Он использует гибрид подсчета ссылок и сборщика мусора в реальном времени для циклических данных.

Аспекты дизайна 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 с Limbo ISBN   0-470-84352-7» (Chichester: John Wiley & Sons, 2003) Филиппа Стэнли-Марбелла . Еще один учебник Мартина Аткинса, Чарльза Форсайта, Роба Пайка и Ховарда Трики « Книга программирования Inferno: Введение в программирование для распределенной системы Inferno» был начат, но так и не выпущен.

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

использованная литература

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