REBOL | |
---|---|
Semantik | modulär , filorienterad , blockstruktur , portprotokoll , datakonvertering , parsning |
Språkklass | multikonceptuell , imperativ , dialekt , dynamisk , meddelandehantering , kontextkänslig , objekt , funktionell , distribuerad , nätverk , ML , DSL |
Utförandetyp | tolk , virtuell maskin |
Framträdde i | 1997 |
Författare | Carl Sassenrath |
Filtillägg _ | .reb |
Släpp | februari 2010 |
Testversion | REBOL 3 |
Typ system | stark , dynamisk , tidig och sen bindning |
Stora implementeringar | plattformsoberoende , extern kärna , dialekter , plugins , server , smart klient , P2P , tjänster , exempelskriptbibliotek , alla skriptbibliotek |
Dialekter | Draw , VID , GUI , Make-GOB , Richtext , Effectt , Secure , DevBase , Rebcode , Parse , MediaWiki Dialect |
Blivit påverkad | Fortran , Lisp , Logo , C , Forth , Prolog , REXX , Smalltalk , Self , Tcl , Lua , Limbo |
Licens | Apache License 2.0 och Apache License [1] |
Hemsida |
rebol.com _ _ |
REBOL (uttalas ['reb'yell] ) är ett kontextkänsligt objektprogrammeringsspråk som är utformat specifikt för distribuerad datoranvändning på webben . REBOL står för Relative Expression Based Object Language.
Författaren positionerar REBOL som ett meddelandespråk:
Carl Sassenrath , arkitekt ("av språkets ord och begrepp")var huvudutvecklaren av AmigaOS innan han grundade REBOL Technologies [2] . Redan dessförinnan arbetade han på Apple Computer och Hewlett Packard , där han fick erfarenhet av att utveckla operativsystem, filsystemet, och formulerade sitt eget koncept med en mikrokärna för en datoroperativmiljö.
Han började arbeta vid 13 års ålder i ett tv-bolag, där han vid 14 var teknisk chef för ett dagligt nyhetsprogram. Utexaminerad från University of California i Davis , specialiserad på operativsystem , parallella processer , programmeringsspråk och neurofysiologi .
Hans projekt blev omedelbart en utmaning, först och främst att sätta stopp för utvecklingen av märkspråk. Men företaget fortsätter att överraska med sina beslut, på väg mot ett urval av balanserade programmeringskoncept och noggrann implementering. Företagets första produkt är redan den andra versionen av språket (1998). Omedelbart började ändringar av kärnan med dialekter att dyka upp:
För avancerade användare (utvecklare):
Som ett exempel på en kommersiell produkt:
För närvarande har den tredje versionen skapats och håller på att testas.
Den 12 december 2012 meddelade Karl Sassenrath [3] att REBOL 3 var öppen källkod under Apache-licensen .
REBOL är ett metaspråk på hög nivå. Språkets grundläggande begrepp: skript (texter), uttryck, serier, block, filer, funktioner, objekt, moduler, portar, protokoll, parsning, matematik, fel, lågnivågrafik, grafiska dialekter. Språket är lätt att förstå, det kan läras ut till skolbarn och omedelbart börja programmera. Men samtidigt är det ganska kraftfullt på grund av dess mångsidighet, och individuella tekniker och metoder kan bli föremål för en djup universitetskurs.
REBOL tillåter strukturell, modulär, funktionell och prototypbaserad programmering. REBOL är inte ett rent funktionellt språk, men programmering i kommandostil (ett imperativ är egentligen inte en funktion) stöds. Den minsta lexikala enheten är ordet - bara en uppsättning tecken. Med hjälp av språket kan en mycket varierad betydelse tillskrivas vilket ord som helst , vilket kan gå långt utöver begreppen i den grundläggande programmeringsmiljön, som huvudsakligen använder en uppsättning grundläggande funktioner (460). De tillåts länkas på ett eller annat sätt inom ramen för det objektorienterade paradigmet, vilket medger, med olika fasta datatyper, stöd för andra möjliga programmeringsparadigm utan att lämna kontexten (det vill säga inne i basvokabulären). REBOL är särskilt bra för domänspråksorienterad programmering som kallas DIALECTS.
REBOL är dynamiskt och dynamiskt typat (värden är starkt typade, variabler inte). Den använder skräpinsamling för minneshantering, stöder undantagshantering och dynamisk namnupplösning (via beräknad bindning).
Och med allt detta behåller språket statusen som ett mikrosystem och ökar hela tiden dess funktionella kraft. Till exempel, dess konkurrent när det gäller uppgifter (att vara en mellanhand av X-Internet eller som det nu är på modet att säga Web 3.0 ) kräver hundratals gånger mer minne (!) och faktiskt förlorat i koncept för effektivitet, trots deltagandet av sådana monster i det, som tidigare chef för IBM Instruments Robert Young och grundare av Internet Tim Berners-Lee [4] .
För att stödja användningen av språket som ett datautbytesspråk har REBOL en minimal syntax med följande egenskaper:
Som ett dataspråk stöder REBOL starkt skrivna värden – cirka 60 inbyggda datatyper. Liksom många programmeringsspråk finns det grundläggande typer, som heltal, decimaler och strängar. REBOL utökar utbudet av datatyper genom att identifiera dem med en lexikal form för att inkludera värdena för själva typen:
Dessa datatyper använder lexikaliska former som är bekanta för många, inte bara programmerare, för att underlätta deras användning som ett utbytesspråk för data (meddelanden). Huvuddatastrukturen i REBOL, som används för att gruppera en viss uppsättning värden, är block! , (placerad inom hakparenteser [ ] ), vilket ganska enkelt associeras med listor i Lisp eller taggar i märkningsspråk.
Tolken finns i flera versioner (/Core, /View, /Command), samt (/Base, /Face och /Pro) för SDK.
Källkoden för REBOL-tolken distribueras fritt och kräver ingen installation. REBOL/View är också fritt tillgängligt. Utökade versioner som REBOL/Pro kräver en licensavgift, de lägger till funktioner som databasåtkomst, möjligheten att använda dynamiskt laddade bibliotek och möjligheten att skapa fristående (körbara) program för utvecklare (t.ex. .exe för Win). I den tredje versionen är det planerat att öppna hela gränssnittet.
Körtiden är för närvarande lagrad i en enda körbar fil. REBOL/Core, konsolversionen, är cirka 300 KB stor . REBOL/View, GUI-versionen (Graphical User Interface), är cirka 600 KB stor . Applikationsprogram, ibland kallade skript, vilket inte är helt korrekt för detta språk - sällan mer än några kilobyte. Så du kan lägga tolken och den körbara filen (koden) till och med på samma diskett (snacka inte ens om ett USB-512-minne) eller skicka det via e-post, eller köra det direkt från Internet.
Körtiden inkluderar stöd för många Internetprotokoll, vilket gör det enkelt att skapa Internetapplikationer som e-postagenter eller webbapplikationer, och i allmänhet klient-serverapplikationer av vilken skala som helst.
REBOL/View ger plattformsoberoende åtkomst till grafik och ljudfunktioner, inkluderar en plattformsoberoende fönsterverktygssats, med en godtycklig, utökbar uppsättning GUI-stilar. Således kan du skapa distribuerade applikationer som har ett grafiskt användargränssnitt på olika plattformar. Att använda idén med Rebol-dialekter är en effektiv lösning för att utveckla framtida X-Internet-applikationer.
REBOL-gemenskapen är också ansluten via ett gemensamt "REBOL-skrivbord" - en grafisk representation av REBOL-filer lagrade på Internet, kallad "REB-Site". "REBOL Desktop" installeras omedelbart, tillsammans med REBOL/View-tolken, och kräver ingen annan webbläsare för att fungera. Själva REBOL-skrivbordet är ett REBOL-program med öppen källkod.
Hej världen:
I konsolen skriver du helt enkelt:
print "Hej världen!"Låt oss skapa ett plattformsoberoende GUI:
REBOL[ Titel: "Hej värld i ett fönster" Fil:%hello-view.r Datum: 12 januari 2002 ] visa layout [ text "Hej världen!" knapp "Avsluta" [avsluta] ]Och här är ett rudimentärt internetprogram som använder HTTP och SMTP :
REBOL[ Titel: "Webbsidas e-postmeddelande" Fil: %sendwebpage.r Datum: 12 januari 2002 Syfte: "Hämta ett HTML-dokument från webben och skicka det via e-post" ] skicka [email protected] läs http://www.rebol.comVarje REBOL-program måste innehålla en rubriksektion som börjar med ordet REBOL så att tolken vet var koden börjar. Titeln får endast innehålla REBOL []; Det är dock bra att ha en utförlig titel, som i exemplet ovan.
REBOL är ett sammanhangskänsligt språk som ger stöd för domänspecifika underspråk som kallas dialekter. Ett exempel på REBOL-kontextkänslighet kan illustreras med ordet retur . I "normal" exekvering returnerar return inom en funktion värdet av resultatet av dess exekvering. I sammanhanget med Visual Interface Dialect (VID) betecknar närvaron av ordet retur en nyrad. En REBOL-programmerare kan skapa sina egna dialekter genom att återanvända vilket befintligt REBOL-ord som helst, associera med det olika betydelser som är relevanta i sammanhanget för den dialekten, för detta ändamål har språket kraftfulla (men lättanvända) faciliteter för att hjälpa till med dialektdesign.
ORCA [5] är en inbäddningsbar REBOL-liknande språktolk implementerad som ett C -bibliotek och distribuerad under villkoren i LGPL . Vid kompilering används REBOL- eller ORCA-tolken.
Boron [6] är en annan REBOL-liknande språktolk skriven i C. Designad för att bäddas in i applikationer. Distribueras enligt villkoren i GPL 3 .
RebGUI [7] - Alternativ till REBOL/Visa VID.
I februari 2011, vid REBOL & Boron-konferensen i Nederländerna [8] presenterade den franske programmeraren Nenad Rakocevic en alfaversion av det REBOL-baserade språket Red [9] [10] för allmänheten . Detta är ett ganska enkelt och på låg nivå, utbyggbart systemprogrammeringsspråk som låter dig definiera olika DSL:er designade för användning i ett brett spektrum av uppgifter. Språkimplementeringen är en kompilator till maskinkod och distribueras under villkoren i BSD-licensen [11] . Använder REBOL-tolken under den första kompileringen. Den kör för närvarande Windows , Linux och Syllable . I början av 2013 fortsätter projektet Red Programming Language att utvecklas aktivt.