Limbo
Limbo — язык программирования в ОС Inferno от создателей Unix. «Если бы можно было все начать сначала, что бы мы написали вместо Си?».
Язык Limbo близок Си и Java, результатом компиляции является байт-код, что обеспечивает переносимость. Переносимость же лежит в основании самой ОС Inferno (наследницы Plan 9), доведенная до состояния приложения, запускаемого поверх хост-операционной системы: Plan 9, FreeBSD, Irix, Linux, Mac OS X, Solaris, Windows NT/2000/XP.
В качестве приятного нюанса — имеет встроенный механизм межпроцессорного взаимодействия: 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"); }
Следует отметить предубеждение против имен типа Стикс (протокол), Инферно, Лимбо и т. п. Разработчики прокомментировали это так: Божественная комедия Данте несет на себе отпечаток сарказма, пафоса, — это то, что и нам хотелось вложить в звучание названий для этих программных продуктов. (не цитата). Видимо, они могут себе теперь это позволить :)
Используемые в разработке: ABAP/4 | Ада | Ассемблеры | Awk | BASIC | Си | КОБОЛ | C++ | C# | ColdFusion | D | Delphi | Forth | FoxPro | DataFlex | Фортран | Java | JavaScript | J++ | J# | Icon | Limbo | Лисп | Lua | Objective-C | Оберон | Oz | Паскаль | Perl | PHP | PL/I | Пролог | Руби | Python | Tcl | Smalltalk | SQL | Visual DataFlex | Visual Basic | VB.NET
|