Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Особенности языка [ править ]

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

  • модульное программирование
  • параллельное программирование
  • строгая проверка типов при компиляции и во время выполнения
  • межпроцессное взаимодействие по типизированным каналам
  • автоматический сбор мусора
  • простые абстрактные типы данных

Виртуальная машина [ править ]

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

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

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

Limbo использует определения стиля Ada, например:

 имя  : =  тип  значение ;  NAME0 , имя1  :  тип  =  значение ;  имя2 , name3  :  тип ;  имя2  =  значение ;

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

 реализовать  команду ;  включить  "sys.m" ;  sys :  Sys ;  включить  "draw.m" ; включить  «ш.м» ;  INIT ( ноль :  исй  Draw -> Контекст ,  ноль :  список  из  строки )  {  SYS  =  нагрузка  Sys  Sys -> PATH ;  sys -> print ( "Hello World! \ n " );  }

Книги [ править ]

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

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

  • Inferno операционная система
  • Алеф , предшественник Limbo
  • План 9 от Bell Labs
  • Go (язык программирования) , аналогичный язык от Google
  • AT&T Hobbit , архитектура процессора, которая вдохновила Dis VM

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

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

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

  • Страница Vita Nuova на Limbo
  • Спуск в безвыходность , Брайан Керниган
  • Limbo язык программирования на Dennis M. Ritchie и Дополнении по Vita Nuova.
  • Адское программирование с помощью Limbo , Филипп Стэнли-Марбелл
  • Многопоточное программирование в стиле Bell Labs CSP
  • Исходный код Dis
  • Дизайн виртуальной машины Inferno , Vita nuova.
  • "Дизайн Dis VM", Inferno (4-е изд.), Cat V.
  • "Спецификация Dis VM", Inferno (4-е изд.), Cat V.