REBOL | |
---|---|
Semantică | modular , orientat pe fișiere , structură bloc , protocol de port , conversie de date , analizare |
Clasa de limba | multi-conceptual , imperativ , dialect , dinamic , mesagerie , sensibil la context , obiect , funcțional , distribuit , rețea , ML , DSL |
Tipul de execuție | interpret , mașină virtuală |
Aparut in | 1997 |
Autor | Carl Sassenrath |
Extensie de fișier | .reb |
Eliberare | februarie 2010 |
Versiune de testare | REBOL 3 |
Tip sistem | legare puternică , dinamică , timpurie și târzie |
Implementări majore | cross-platform , nucleu extern , dialecte , pluginuri , server , client inteligent , P2P , servicii , bibliotecă de mostre de scripturi , toate bibliotecile de scripturi |
Dialectele | Draw , VID , GUI , Make-GOB , Richtext , Effectt , Secure , DevBase , Rebcode , Parse , MediaWiki Dialect |
A fost influențat | Fortran , Lisp , Logo , C , Forth , Prolog , REXX , Smalltalk , Self , Tcl , Lua , Limbo |
Licență | Licența Apache 2.0 și Licența Apache [1] |
Site-ul web |
rebol.com _ _ |
REBOL (pronunțat ['reb`yell] ) este un limbaj de programare obiect sensibil la context, conceput special pentru calcularea distribuită pe Web . REBOL înseamnă Relative Expression Based Object Language.
Autorul poziționează REBOL ca limbaj de mesagerie:
Carl Sassenrath , arhitect („al cuvintelor și conceptelor limbajului”)a fost principalul dezvoltator al AmigaOS înainte de a fonda REBOL Technologies [2] . Chiar și înainte de asta, a lucrat la Apple Computer și Hewlett Packard , unde a câștigat experiență în dezvoltarea sistemelor de operare, a sistemului de fișiere și și-a formulat propriul concept de microkernel pentru un mediu de operare pentru computer.
A început să lucreze la vârsta de 13 ani într-o companie de televiziune, unde la 14 ani era director tehnic al unui program de știri zilnic. Absolvent al Universității din California din Davis , specializat în sisteme de operare , procese paralele , limbaje de programare și neurofiziologie .
Proiectul său a devenit imediat o provocare, în primul rând, punând capăt dezvoltării limbajelor de marcare. Dar firma continuă să surprindă cu deciziile sale, îndreptându-se spre o alegere de concepte de programare echilibrate și implementare atentă. Primul produs al companiei este deja a doua versiune a limbii (1998). Imediat, au început să apară modificări ale nucleului cu dialecte:
Pentru utilizatori avansați (dezvoltatori):
Ca exemplu de produs comercial:
În prezent, a treia versiune a fost creată și este în curs de testare.
Pe 12 decembrie 2012, Karl Sassenrath a anunțat [3] că REBOL 3 este open source sub licența Apache .
REBOL este un meta-limbaj de nivel înalt. Concepte de bază ale limbajului: scripturi (texte), expresii, serii, blocuri, fișiere, funcții, obiecte, module, porturi, protocoale, parsing, matematică, erori, grafică de nivel scăzut, dialecte grafice. Limbajul este ușor de înțeles, poate fi predat școlarilor și începe imediat programarea. Dar, în același timp, este destul de puternic datorită versatilității sale, iar tehnicile și metodologiile individuale pot face obiectul unui curs universitar profund.
REBOL permite programarea structurală, modulară, funcțională și bazată pe prototip. REBOL nu este un limbaj pur funcțional, dar programarea în stil de comandă (un imperativ nu este cu adevărat o funcție) este acceptată. Unitatea lexicală minimă este cuvântul - doar un set de caractere. Prin intermediul limbajului, oricărui cuvânt poate fi atribuit un sens foarte divers , care poate depăși cu mult conceptele mediului de programare de bază, care utilizează în principal un set de funcții de bază (460). Acestea au voie să fie legate într-un fel sau altul în cadrul paradigmei orientate pe obiecte, ceea ce permite, având diverse tipuri de date fixe, suport pentru alte posibile paradigme de programare fără a părăsi contextul (adică în interiorul vocabularului de bază). REBOL este deosebit de bun pentru programarea orientată pe limbaj de domeniu numit DIALECTS.
REBOL este dinamic și tipat dinamic (valorile sunt puternic tastate, variabilele nu). Utilizează colectarea gunoiului pentru gestionarea memoriei, acceptă gestionarea excepțiilor și rezoluția dinamică a numelor (prin legare calculată).
Și cu toate acestea, limba își păstrează statutul de microsistem, crescându-și constant puterea funcțională. De exemplu, concurentul său în ceea ce privește sarcinile (pentru a fi un intermediar al X-Internet sau așa cum este acum la modă să spunem Web 3.0 ) curl necesită de sute de ori mai multă memorie (!) și, de fapt, pierdut în concept pentru eficiență, în ciuda participării unor astfel de monștri la ea, cum ar fi fostul șef al IBM Instruments Robert Young și tatăl fondator al Internetului Tim Berners-Lee [4] .
Pentru a sprijini utilizarea limbajului ca limbaj de schimb de date, REBOL are o sintaxă minimă cu următoarele proprietăți:
Ca limbaj de date, REBOL acceptă valori puternic tipizate - aproximativ 60 de tipuri de date native. La fel ca multe limbaje de programare, există tipuri de bază, cum ar fi numere întregi, zecimale și șiruri. REBOL extinde gama de tipuri de date identificându-le cu o formă lexicală pentru a include valorile tipului în sine:
Aceste tipuri de date folosesc forme lexicale familiare multora, nu doar programatorilor, pentru a facilita utilizarea lor ca limbaj de schimb de date (mesaje). Structura principală de date din REBOL, folosită pentru a grupa un anumit set de valori, este bloc! , (așezat între paranteze drepte [ ] ), care este destul de ușor asociat cu liste în Lisp sau etichete în limbaje de marcare.
Interpretul este disponibil în mai multe versiuni (/Core, /View, /Command), precum și (/Base, /Face și /Pro) pentru SDK.
Codul sursă al interpretului REBOL este distribuit gratuit și nu necesită instalare. REBOL/View este, de asemenea, disponibil gratuit. Versiunile extinse precum REBOL/Pro necesită o taxă de licență, adaugă funcții precum accesul la baze de date, capacitatea de a utiliza biblioteci încărcate dinamic și capacitatea de a crea programe autonome (executabile) pentru dezvoltatori (de exemplu, .exe pentru Win). În cea de-a treia versiune, este planificată deschiderea întregii interfețe.
Timpul de rulare este în prezent stocat într-un singur fișier executabil. REBOL/Core, versiunea pentru consolă, are o dimensiune de aproximativ 300 KB . REBOL/View, versiunea GUI (Graphical User Interface), are o dimensiune de aproximativ 600 KB . Programe de aplicație, numite uneori scripturi, care nu este tocmai corectă pentru acest limbaj - rareori mai mult de câțiva kiloocteți. Așa că poți pune interpretul și executabilul (codul) chiar și pe aceeași dischetă (nici măcar nu vorbim despre o unitate flash USB-512) sau să le trimiți prin e-mail, sau să-l executi direct de pe Internet.
Timpul de execuție include suport pentru multe protocoale Internet, ceea ce face ușoară crearea de aplicații Internet, cum ar fi agenți de e-mail sau aplicații Web și, în general, aplicații client-server de orice scară.
REBOL/View oferă acces independent de platformă la capabilități grafice și audio, include un set de instrumente pentru ferestre independent de platformă, cu un set arbitrar, extensibil de stiluri GUI. Astfel, puteți crea aplicații distribuite care au o interfață grafică cu utilizatorul pe diferite platforme. Folosirea ideii de dialecte Rebol este o soluție eficientă pentru dezvoltarea viitoarelor aplicații X-Internet.
Comunitatea REBOL este conectată și printr-un „desktop REBOL” comun – o reprezentare grafică a fișierelor REBOL stocate pe Internet, numită „REB-Site”. „REBOL Desktop” este instalat imediat, împreună cu interpretul REBOL/View, și nu necesită niciun alt browser pentru a funcționa. Desktop-ul REBOL în sine este o aplicație REBOL open source.
Salut Lume:
În consolă, scrieți pur și simplu:
tipăriți „Bună lume!”Să creăm o interfață grafică independentă de platformă:
REBOL[ Titlu: „Hello World in a Window” Fișier:%hello-view.r Data: 12-ianuarie-2002 ] vizualizați aspectul [ text „Bună lume!” butonul „Ieșire” [Ieșire] ]Și iată un program rudimentar de internet care folosește HTTP și SMTP :
REBOL[ Titlu: „E-mailer pentru pagina web” Fișier: %sendwebpage.r Data: 12-ianuarie-2002 Scop: „Obțineți un document HTML de pe web și trimiteți-l prin e-mail” ] trimite [email protected] citește http://www.rebol.comFiecare program REBOL trebuie să conțină o secțiune antet care începe cu cuvântul REBOL, astfel încât interpretul să știe de unde începe codul. Titlul trebuie să conțină numai REBOL []; cu toate acestea, este o practică bună să aveți un titlu cu caracter pronunțat, ca în exemplul de mai sus.
REBOL este un limbaj sensibil la context, care oferă suport pentru sublimbi specifice domeniului, numite dialecte. Un exemplu de sensibilitate la context REBOL poate fi ilustrat cu cuvântul return . În execuția „normală”, returnarea într-o funcție returnează valoarea rezultatului execuției acesteia. În contextul dialectului interfeței vizuale (VID), prezența cuvântului return denotă o nouă linie. Un programator REBOL își poate crea propriile dialecte prin reutilizarea oricărui cuvânt REBOL existent, asociind cu acesta diverse semnificații care sunt relevante în contextul acelui dialect, în acest scop limbajul dispune de facilități puternice (dar ușor de utilizat) pentru a ajuta la proiectarea dialectului.
ORCA [5] este un interpret de limbaj încorporabil asemănător REBOL, implementat ca bibliotecă C și distribuit în condițiile LGPL . La compilare se folosește interpretul REBOL sau ORCA.
Boron [6] este un alt interpret de limbaj asemănător REBOL, scris în C. Proiectat pentru a fi încorporat în aplicații. Distribuit în conformitate cu termenii GPL 3 .
RebGUI [7] - Alternativă la REBOL/View VID.
În februarie 2011, la conferința REBOL & Boron din Țările de Jos [8] , programatorul francez Nenad Rakocevic a prezentat publicului o versiune alfa a limbajului bazat pe REBOL Red [9] [10] . Acesta este un limbaj de programare de sistem destul de simplu și de nivel scăzut, extensibil , care vă permite să definiți diferite DSL -uri concepute pentru a fi utilizate într-o gamă largă de sarcini. Implementarea limbajului este un compilator la codul mașinii și este distribuită în condițiile licenței BSD [11] . Utilizează interpretul REBOL în timpul compilării inițiale. În prezent rulează Windows , Linux și Syllabe . La începutul anului 2013, proiectul Red Programming Language continuă să se dezvolte activ.