REBOL

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 12. července 2019; kontroly vyžadují 16 úprav .
REBOL
Sémantika modulární , orientovaný na soubory , bloková struktura , protokol portu , konverze dat , parsování
Jazyková třída multikoncepční , imperativ , dialekt , dynamický , zasílání zpráv , kontextově citlivý , objekt , funkční , distribuovaný , síť , ML , DSL
Typ provedení tlumočník , virtuální stroj
Objevil se v 1997
Autor Carl Sassenrath
Přípona souboru .reb
Uvolnění února 2010
Testovací verze REBOL 3
Typový systém silná , dynamická , raná a pozdní vazba
Hlavní implementace multiplatformní , externí jádro , dialekty , pluginy , server , chytrý klient , P2P , služby , knihovna ukázkových skriptů , knihovna všech skriptů
Dialekty Draw , VID , GUI , Make-GOB , Richtext , Effectt , Secure , DevBase , Rebcode , Parse , MediaWiki Dialect
Byl ovlivněn Fortran , Lisp , Logo , C , Forth , Prolog , REXX , Smalltalk , Self , Tcl , Lua , Limbo
Licence Licence Apache 2.0 a licence Apache [1]
webová stránka rebol.com _ 
_

REBOL (vyslovováno ['reb`yell] ) je kontextově citlivý objektový programovací jazyk navržený speciálně pro distribuované výpočty na webu . REBOL je zkratka pro Relative Expression Based Object Language.

Autor staví REBOL jako jazyk pro zasílání zpráv:

Historie

Carl Sassenrath , architekt („slova a koncepty jazyka“)byl hlavním vývojářem AmigaOS před založením REBOL Technologies [2] . Ještě předtím pracoval ve společnostech Apple Computer a Hewlett Packard , kde získal zkušenosti s vývojem operačních systémů, souborového systému a formuloval vlastní koncept mikrokernelu pro operační prostředí počítače.

Začal pracovat ve 13 letech v televizní společnosti, kde byl ve 14 letech technickým ředitelem denního zpravodajství. Vystudoval University of California v Davisu se specializací na operační systémy , paralelní procesy , programovací jazyky a neurofyziologii .

Jeho projekt se okamžitě stal výzvou, především tím, že ukončil vývoj značkovacích jazyků. Firma však stále překvapuje svými rozhodnutími a směřuje k výběru vyvážených programových konceptů a pečlivé implementace. Prvním produktem společnosti je již druhá verze jazyka (1998). Okamžitě se začaly objevovat modifikace jádra s dialekty:

Pro pokročilé uživatele (vývojáře):

Jako příklad komerčního produktu:

V současné době je vytvořena a testována třetí verze.

Dne 12. prosince 2012 Karl Sassenrath oznámil [3] , že REBOL 3 je open source pod licencí Apache .

Jazyk

Programování

REBOL je metajazyk na vysoké úrovni. Základní pojmy jazyka: skripty (texty), výrazy, řady, bloky, soubory, funkce, objekty, moduly, porty, protokoly, parsování, matematika, chyby, nízkoúrovňová grafika, grafické dialekty. Jazyk je snadno srozumitelný, lze jej naučit školáky a hned začít programovat. Zároveň je však díky své všestrannosti poměrně výkonný a jednotlivé techniky a metodiky mohou být předmětem hlubokého univerzitního kurzu.

REBOL umožňuje strukturální, modulární, funkční a prototypové programování. REBOL není čistě funkcionální jazyk, ale je podporováno programování ve stylu příkazů (imperativ ve skutečnosti není funkce). Minimální lexikální jednotkou je slovo  – pouze soubor znaků. Prostřednictvím jazyka lze každému slovu přisoudit velmi rozmanitý význam , který může daleko přesahovat koncepty základního programovacího prostředí, které využívá především sadu základních funkcí (460). Je povoleno je propojovat tak či onak v rámci objektově orientovaného paradigmatu, které s různými pevnými datovými typy umožňuje podporu dalších možných programovacích paradigmat bez opuštění kontextu (tj. uvnitř základního slovníku). REBOL je zvláště vhodný pro programování orientované na doménový jazyk nazývané DIALECTS.

REBOL je dynamický a dynamicky typovaný (hodnoty jsou silně typované, proměnné nikoli). Používá garbage collection pro správu paměti, podporuje zpracování výjimek a dynamické rozlišení názvů (přes vypočítanou vazbu).

A díky tomu všemu si jazyk zachovává status mikrosystému a neustále zvyšuje svou funkční sílu. Například jeho konkurent, pokud jde o úkoly (být prostředníkem X-Internetu nebo jak je nyní módní říkat Web 3.0 ) , curl vyžaduje stonásobně více paměti (!) a ve skutečnosti ztrácí koncept pro efektivitu, navzdory účasti takových monster, jako byl bývalý šéf IBM Instruments Robert Young a zakladatel internetu Tim Berners-Lee [4] .

Definice a výměna dat

Pro podporu použití jazyka jako jazyka pro výměnu dat má REBOL minimální syntaxi s následujícími vlastnostmi:

Jako datový jazyk REBOL podporuje silně typované hodnoty – asi 60 nativních datových typů. Stejně jako mnoho programovacích jazyků existují základní typy, jako jsou celá čísla, desetinná místa a řetězce. REBOL rozšiřuje rozsah datových typů tím, že je identifikuje lexikální formou tak, aby zahrnovala samotné hodnoty typu:

Tyto datové typy používají lexikální formy známé mnoha, nejen programátorům, k usnadnění jejich použití jako jazyka pro výměnu dat (zpráv). Hlavní datová struktura v REBOL, používaná k seskupení určité sady hodnot, je bloková! , (umístěný v hranatých závorkách [ ] ), který se poměrně snadno spojuje se seznamy v Lisp nebo se značkami ve značkovacích jazycích.

Implementace

Interpret je k dispozici v několika verzích (/Core, /View, /Command) a také (/Base, /Face a /Pro) pro SDK.

Zdrojový kód interpretu REBOL je volně distribuován a nevyžaduje instalaci. REBOL/View je také volně dostupný. Rozšířené verze jako REBOL/Pro vyžadují licenční poplatek, přidávají funkce jako přístup k databázi, možnost používat dynamicky načítané knihovny a možnost vytvářet samostatné (spustitelné) programy pro vývojáře (např. .exe pro Win). Ve třetí verzi se plánuje otevření celého rozhraní.

Runtime je aktuálně uloženo v jediném spustitelném souboru. REBOL/Core, konzolová verze, má velikost přibližně 300 KB . REBOL/View, verze GUI (Graphical User Interface), má velikost přibližně 600 KB . Aplikační programy, někdy nazývané skripty, což není pro tento jazyk zcela správné - zřídka více než několik kilobajtů. Interpret a spustitelný soubor (kód) tedy můžete vložit i na stejnou disketu (o flash disku USB-512 ani nemluvě) nebo poslat e-mailem, případně spustit přímo z internetu.

Runtime zahrnuje podporu mnoha internetových protokolů, což usnadňuje vytváření internetových aplikací, jako jsou e-mailové agenty nebo webové aplikace, a obecně aplikace klient-server jakéhokoli rozsahu.

REBOL/View poskytuje na platformě nezávislý přístup ke grafickým a zvukovým možnostem, obsahuje sadu nástrojů pro vytváření oken nezávislých na platformě s libovolnou, rozšiřitelnou sadou stylů GUI. Můžete tak vytvářet distribuované aplikace, které mají grafické uživatelské rozhraní na různých platformách. Použití myšlenky dialektů Rebol je efektivním řešením pro vývoj budoucích X-Internet aplikací.

Komunita REBOL je také propojena prostřednictvím společné „REBOL desktop“  – grafické znázornění souborů REBOL uložených na internetu, nazývané „REB-Site“. "REBOL Desktop" se nainstaluje okamžitě spolu s interpretem REBOL/View a nevyžaduje k fungování žádný jiný prohlížeč. Samotný desktop REBOL je open source aplikace REBOL.

Příklady

Ahoj světe:

V konzoli jednoduše napíšete:

tisknout "Ahoj světe!"

Pojďme vytvořit GUI nezávislé na platformě:

REBOL[ Název: „Ahoj světe v okně“ Soubor:%hello-view.r Datum: 12. ledna 2002 ] zobrazit rozložení [ text "Ahoj světe!" tlačítko "Quit" [quit] ]

A zde je základní internetový program, který používá HTTP a SMTP :

REBOL[ Název: "E-mailer webové stránky" Soubor: %sendwebpage.r Datum: 12. ledna 2002 Účel: „Získejte dokument HTML z webu a odešlete jej e-mailem“ ] pošlete [email protected]říklad čtěte http://www.rebol.com

Každý program REBOL musí obsahovat část záhlaví, která začíná slovem REBOL, aby interpret věděl, kde kód začíná. Název musí obsahovat pouze REBOL []; je však dobrou praxí mít verbální název, jako ve výše uvedeném příkladu.

Dialekty

REBOL je kontextově citlivý jazyk, který poskytuje podporu pro doménově specifické podjazyky zvané dialekty. Příklad kontextové citlivosti REBOL lze ilustrovat slovem return . Při "normálním" provádění vrací return v rámci funkce hodnotu výsledku jejího provedení. V kontextu Visual Interface Dialect (VID) přítomnost slova return označuje nový řádek. Programátor REBOL může vytvářet své vlastní dialekty opětovným použitím jakéhokoli existujícího slova REBOL a spojovat s ním různé významy, které jsou relevantní v kontextu daného dialektu, pro tento účel má jazyk výkonné (ale snadno použitelné) prostředky, které pomáhají s návrhem dialektu.

Jazyky podobné REBOLu

ORCA [5]  je embeddovatelný jazykový interpret podobný REBOL implementovaný jako knihovna C a distribuovaný za podmínek LGPL . Při kompilaci se používá interpret REBOL nebo ORCA.

Boron [6]  je další jazykový interpret podobný REBOL napsaný v C. Navrženo pro zabudování do aplikací. Distribuováno za podmínek GPL 3 .

RebGUI [7]  - Alternativa k REBOL/Zobrazit VID.

Červený kompilátor

V únoru 2011 na konferenci REBOL & Boron v Nizozemsku [8] představil francouzský programátor Nenad Rakocevic veřejnosti alfa verzi jazyka Red [9] [10] založeného na REBOLu . Jedná se o poměrně jednoduchý a nízkoúrovňový rozšiřitelný systémový programovací jazyk , který vám umožňuje definovat různé DSL navržené pro použití v široké škále úloh. Jazyková implementace je kompilátor do strojového kódu a je distribuována za podmínek licence BSD [11] . Během počáteční kompilace používá interpret REBOL. V současné době běží na Windows , Linux a Syllable . Začátkem roku 2013 se projekt Red Programming Language nadále aktivně rozvíjí.

Poznámky

  1. https://api.github.com/repos/rebol/r3
  2. Jazyk REBOL . Získáno 4. června 2009. Archivováno z originálu dne 7. listopadu 2008.
  3. Zdrojový kód R3 zveřejněn! . Datum přístupu: 13. prosince 2012. Archivováno z originálu 14. prosince 2012.
  4. Viz X Internet nebo „Apple of the Sphinx Archived 22. září 2015 na Wayback Machine
  5. Klon jazyka ORCA REBOL . Získáno 2. února 2010. Archivováno z originálu 7. prosince 2009.
  6. bor . Získáno 26. 5. 2013. Archivováno z originálu 15. 5. 2013.
  7. RebGUI . Získáno 26. 5. 2013. Archivováno z originálu 14. 5. 2013.
  8. Cesta začíná! Archivováno 9. července 2011 na Wayback Machine , Red Programming Language, 27. února 2011
  9. Červený programovací jazyk . Získáno 22. června 2011. Archivováno z originálu 23. června 2011.
  10. Nový červený programovací jazyk získává slabikový backend Archivováno 23. června 2011 na Wayback Machine , OSNews
  11. Červený programovací jazyk na GitHubu

Odkazy