Limbo
Pojawienie się

1995

Paradygmat

programowanie współbieżne

Typowanie

silne

Twórca

Sean Dorward, Phil Winterbottom, Rob Pike

Licencja

Open Source

Platforma systemowa

Inferno

Strona internetowa

Limbojęzyk programowania przeznaczony do tworzenia systemów rozproszonych oraz programów dla systemu operacyjnego Inferno. Limbo został stworzony w Bell Labs przez Dennisa Ritchie, Seana Dorwarda, Phila Winterbottoma i Roba Pike’a.

Kompilator Limbo generuje kod pośredni, niezależny od danej architektury procesora, który następnie jest wykonywany przez wirtualną maszynę o nazwie Dis lub też kompilowany w kod maszyny docelowej tuż przed jego wykonaniem dla zwiększenia wydajności. Tak więc wszystkie programy dla Limbo są przenośne pomiędzy dowolnymi platformami Inferno. Sposób rozwiązania problemu urównoleglenia operacji zastosowany w Limbo czerpie inspirację z Communicating Sequential Processes (CSP) Hoare’a.

Cechy języka

edytuj

Język oprogramowania Limbo wykazuje się następującymi cechami:

  • modularność
  • programowanie współbieżne
  • twarde sprawdzanie zgodności typów w trakcie kompilacji
  • komunikacja międzyprocesowa za pośrednictwem kanałów określonego rodzaju
  • automatyczne zwalnianie nieużywanych zasobów
  • proste abstrakcyjne typy danych

Przykłady

edytuj

W składni Limbo można dostrzec zarówno wpływy języka C, jak i Pascala oraz jego następców[1].

name := type value;
name0,name1 : type = value;
name2,name3 : type;
name2 = value;
for (expr1 ; expr2 ; expr3) statement.

„Witaj, Świecie!”

edytuj
 implement Command;

 include "sys.m";
     sys: Sys;

 include "draw.m";

 include "sh.m";

 init(nil: ref Draw->Context, nil: list of string)
 {
     sys = load Sys Sys->PATH;
     sys->print("Hello World!\n");
 }

Przypisy

edytuj
  1. Dennis M. Ritchie: The Limbo Programming Language. [dostęp 2011-08-27]. Cytat: A quick glance at the program reveals that the syntax of Limbo is influenced by C in its expressions, statements, and some conventions (...), and also by Pascal and its successors (...) (ang.).

Literatura

edytuj

Trzecie wydanie systemu operacyjnego Inferno oraz język oprogramowania Limbo są opisane w podręczniku Inferno Programming with Limbo ISBN 0-470-84352-7 (Chichester: John Wiley & Sons, 2003), by Phillip Stanley-Marbell. Inny podręcznik – „The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System”, autorstwa Martina Atkinsa, Charlesa Forsytha, Roba Pike’a i Howarda Trickeya, nie został nigdy dokończony.

Linki zewnętrzne

edytuj

📚 Artikel Terkait di Wikipedia

Interpreter (program komputerowy)

2020-04-21]  (ang.). 3.3.2 – Chunks, [w:] Lua 5.3 Reference Manual, The Programming Language Lua, 26 czerwca 2018 [dostęp 2020-04-21]  (ang.). Byte Compilation

Ada (język programowania)

pliku „ackermann.adb” (wielkość liter bez znaczenia). with Ada.Command_Line; use Ada.Command_Line; with Gnat.Io; use Gnat.Io; procedure Ackermann is function

Tkinter

documentation [online], docs.python.org [dostęp 2021-03-01] . Python – GUI Programming (Tkinter) – Tutorialspoint [online], www.tutorialspoint.com [dostęp 2021-03-01] 

Lista skrótów i skrótowców używanych w informatyce

Punkt Dystrybucyjny CPU – Central Processing Unit CQS – Command Query Separation CQRS – Command Query Responsibility Segregation CRC – Cyclic Redundancy

Lisp

the Command Line(inne języki) Programista Lispu zna wartość wszystkich rzeczy, ale nie zna kosztu żadnej z nich Alan Perlis, Epigrams on Programming(inne

AWK

zawarta w POSIX 1003.2 Command Language And Utilities Standard. Wersja ta jest z kolei oparta na opisie z The AWK Programming Language napisanym przez

Historia macOS

ISBN 978-1-4087-0374-8. A Practical Guide to Linux Commands, Editors, and Shell Programming, 3rd edition, by Mark G. Sobell, page 2. Owen W. Linzmayer: Apple Confidential:

Emacs

[dostęp 2019-07-04] . Ian F. Darwin. A Public Domain UNIX Clone and a C Programming Book for UNIX users. „Micro/Systems Journal”. 3 (6), s. 72-75, Listopad-Grudzień