Relative Expression Based Object Language (REBOL) este considerat a fi un limbaj de schimb de date care poate fi utilizat pe o mare varietate de platforme. A fost inventat de Carl Sassenrath pentru a acționa ca un limbaj de programare dinamic pentru computere multi-paradigma. Scopul inițial a fost orientat în primul rând către calcularea distribuită și comunicațiile de rețea. A petrecut 20 de ani în faza de dezvoltare înainte de a fi lansat în 1997.
REBOL poate fi folosit pentru a programa aplicații server și client, aplicații multimedia și aplicații de baze de date. Este considerată o tehnologie cu ambele părți, deoarece este o soluție integrată pentru calcularea distribuită și este cea mai eficientă atunci când este rulată atât de client, cât și de server. Dialectele REBOL sunt micro-limbi care pot fi optimizate pentru un anumit scop, cum ar fi scripturile computerizate. Utilizatorii au capacitatea de a-și redefini propriile dialecte prin reutilizarea cuvintelor REBOL existente. În multe cazuri, dialectele sunt considerate a fi unul dintre cele mai mari puncte forte ale utilizării REBOL.
Nu este considerat a fi un limbaj de computer tradițional, deoarece a fost conceput pentru a servi unui singur scop principal. REBOL integrează conceptele de bază ale limbajelor de programare cu limbajul metadate pentru a eficientiza schimbul și interpretarea informațiilor, ceea ce poate fi o problemă a calculului distribuit. Când este definit din punct de vedere tehnic, ar fi considerat un limbaj meta-circular deoarece poate acționa ca propriul său meta-limbaj.
Există o varietate de pachete diferite dintre care se poate alege, unele vizând începătorii, iar altele pentru utilizatorii avansați. În plus, fiecare pachet poate fi folosit pe o varietate de platforme. Pe lângă faptul că este un limbaj de reprezentare a datelor și meta, REBOL creează și o arhitectură consistentă pentru stocare, calcul și schimb de informații.
REBOL este o platformă relativ ușoară care poate fi utilizată pentru aplicații de internet. Acest lucru se datorează în mare parte faptului că utilizează o arhitectură unică pentru a stoca informații, precum și pentru a gestiona modul în care acestea sunt schimbate și procesate. Scopul acestei arhitecturi este de a se asigura că REBOL este mic și ușor de gestionat.
Utilizarea unor aplicații minuscule cunoscute sub numele de reblets este ceea ce permite descărcarea foarte rapidă a informațiilor. Aceste aplicații nu necesită nicio bibliotecă specială pentru a fi rulate, deși încă pot include sute de funcții și tipuri de date unice. Unele dintre cele mai robuste și complexe aplicații REBOL încă reușesc să rămână 10-30 kiloocteți (KB) fiecare.