Эта статья требует дополнительных ссылок для проверки . ( октябрь 2013 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Парадигма | Одновременный |
---|---|
Разработано | Шон Дорвард, Фил Уинтерботтом, Роб Пайк |
Разработчик | Bell Labs / Vita Nuova Holdings |
Впервые появился | 1995 |
Печатная дисциплина | Сильный |
Операционные системы | Inferno |
Лицензия | Открытый исходный код |
Интернет сайт | www |
Основные реализации | |
Виртуальная машина Dis | |
Под влиянием | |
C , Паскаль , CSP , Алеф , Newsqueak | |
Под влиянием | |
Безстековый Python , Go , Rust |
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
Ссылки [ править ]
- ^ "Inferno Application Programming" . Витануова . Витануова . Проверено 26 января 2021 года .
- ^ «Спецификация виртуальной машины Dis» . Vita Nuova. 2000 . Дата обращения 2 февраля 2015 .
- ^ Лоренц Хюльсберген и Фил Винтерботтом. «Очень одновременная пометка и очистка мусора без точной синхронизации» (PDF) . Цитировать журнал требует
|journal=
( помощь )
Внешние ссылки [ править ]
- Страница Vita Nuova на Limbo
- Спуск в безвыходность , Брайан Керниган
- Язык программирования Limbo от Денниса М. Ричи и Приложение от Виты Нуовой.
- Адское программирование с помощью Limbo , Филипп Стэнли-Марбелл
- Многопоточное программирование в стиле Bell Labs CSP
- Исходный код Dis
- Дизайн виртуальной машины Inferno , Vita nuova.
- "Дизайн Dis VM", Inferno (4-е изд.), Cat V.
- "Спецификация Dis VM", Inferno (4-е изд.), Cat V.