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

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

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

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

Подход Limbo к параллелизму был вдохновлен Hoare с связь последовательных процессов (CSP), как это было реализовано и исправлено в более ранней версии Pike Newsqueak язык и Винтерботтома Алеф.

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

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

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

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

Аспекты дизайна Dis были вдохновлены AT&T Хоббит микропроцессор, как в оригинале BeBox.

Примеры

Лимбо использует Ада -стилевые определения, как в:

 имя := тип ценить; имя0,name1 : тип = ценить; имя2,имя3 : тип; имя2 = ценить;

Привет, мир

 воплощать в жизнь Команда;  включают "sys.m";     sys: Sys;  включают "draw.m"; включают "ш.м";  в этом(ноль: ссылка Рисовать->Контекст, ноль: список из нить) {     sys = нагрузка Sys Sys->ДОРОЖКА;     sys->Распечатать("Привет, мир! п"); }

Книги

3-е издание операционной системы Inferno и языка программирования Limbo описаны в учебнике. Адское программирование с помощью Limbo ISBN  0-470-84352-7 (Чичестер: John Wiley & Sons, 2003 г.) Филипп Стэнли-Марбелл. Другой учебник Книга по программированию Inferno: Введение в программирование для распределенной системы InfernoМартина Аткинса, Чарльза Форсайта, Роб Пайк и Говарда Трики была начата, но так и не вышла.

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

Рекомендации

  1. ^ «Спецификация виртуальной машины Dis». Vita Nuova. 2000 г.. Получено 2 февраля 2015.
  2. ^ Лоренц Хюльсберген и Фил Уинтерботтом. «Очень одновременная пометка и сборка мусора без точной синхронизации» (PDF). Цитировать журнал требует | журнал = (помощь)

внешняя ссылка