Limbo (язык программирования) - Limbo (programming language)
Эта статья нужны дополнительные цитаты для проверка.Октябрь 2013) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигма | Одновременный |
---|---|
Разработано | Шон Дорвард, Фил Уинтерботтом, Роб Пайк |
Разработчик | Bell Labs / Vita Nuova Holdings |
Впервые появился | 1995 |
Печатная дисциплина | Сильный |
Операционные системы | Inferno |
Лицензия | Открытый исходный код |
Интернет сайт | www |
Основной реализации | |
Виртуальная машина 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Мартина Аткинса, Чарльза Форсайта, Роб Пайк и Говарда Трики была начата, но так и не вышла.
Смотрите также
- В Inferno Операционная система
- Алеф, предшественник Limbo
- План 9 от Bell Labs
- Go (язык программирования), аналогичный язык от Google
- AT&T Хоббит, архитектура процессора, которая вдохновила Dis VM
Рекомендации
- ^ «Спецификация виртуальной машины Dis». Vita Nuova. 2000 г.. Получено 2 февраля 2015.
- ^ Лоренц Хюльсберген и Фил Уинтерботтом. «Очень одновременная пометка и сборка мусора без точной синхронизации» (PDF). Цитировать журнал требует
| журнал =
(помощь)
внешняя ссылка
- Страница Vita Nuova на Limbo
- Спуск в небытие к Брайан Керниган
- Язык программирования Limbo к Деннис М. Ричи и Дополнение пользователя Vita Nuova.
- Адское программирование с помощью Limbo к Филипп Стэнли-Марбелл
- Многопоточное программирование в стиле Bell Labs CSP
- Исходный код Dis
- Дизайн виртуальной машины Inferno, Vita nuova.
- «Дизайн Дис ВМ», Inferno (4-е изд.), Cat V.
- «Спецификация Dis VM», Inferno (4-е изд.), Cat V.