Limbo

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск
Limbo
Семантика:

Конкурентное программирование

Появился в:

1995 г.

Автор(ы):

Шон Дорвард, Фил Винтерботтом, Роб Пайк

Типизация данных:

строгая

Испытал влияние:

C, CSP, Alef

Повлиял на:

Stackless Python

Limbo — язык программирования в ОС Inferno от создателей Unix. «Если бы можно было все начать сначала, что бы мы написали вместо Си?».

[править] Особенности

Язык Limbo близок Си и Java, результатом компиляции является байт-код, что обеспечивает переносимость. Переносимость же лежит в основании самой ОС Inferno (наследницы Plan 9), доведенная до состояния приложения, запускаемого поверх хост-операционной системы: Plan 9, FreeBSD, Irix, GNU/Linux, Mac OS X, Solaris, Windows NT.

Limbo имеет встроенный механизм межпроцессного взаимодействия под названием «channels».

Среди встроенных типов:

  • byte (8-bit unsigned),
  • int (32-bit signed),
  • big (64-bit signed),
  • real (64-bit floating point),
  • array (структура со слайсами),
  • string
  • adt (Си подобные структуры)
  • tuple (фиксированный список),
  • module
  • pick (вариант объединения, похожего на свой аналог в IDL) и т. д. см. подробнее на сайте.

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

Программа, выводящая «Hello, World!».

implement Command;
include "sys.m";
include "draw.m";
sys:	Sys;
Command: module
{
    init: fn (ctxt: ref Draw->Context, argv: list of string);
};
init(ctxt: ref Draw->Context, argv: list of string)
{
	sys = load Sys Sys->PATH;
        sys->print("hello world\n");
        for (; argv!=nil; argv = tl argv)
               sys->print("%s ", hd argv);
        sys->print("\n");
}
    

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

Источник — «http://ru.wikipedia.org/wiki/Limbo»