REBOL

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 12. juli 2019; checks kræver 16 redigeringer .
REBOL
Semantik modulær , filorienteret , blokstruktur , portprotokol , datakonvertering , parsing
Sprog klasse multi-konceptuel , imperativ , dialekt , dynamisk , meddelelser , kontekstafhængig , objekt , funktionel , distribueret , netværk , ML , DSL
Udførelsestype tolk , virtuel maskine
Dukkede op i 1997
Forfatter Carl Sassenrath
Filtypenavn _ .reb
Frigøre februar 2010
Test version REBOL 3
Type system stærk , dynamisk , tidlig og sen binding
Større implementeringer cross-platform , ekstern kerne , dialekter , plugins , server , smart klient , P2P , tjenester , eksempel script bibliotek , alle script bibliotek
Dialekter Tegn , VID , GUI , Make-GOB , Richtext , Effectt , Secure , DevBase , Rebcode , Parse , MediaWiki Dialect
Blev påvirket Fortran , Lisp , Logo , C , Forth , Prolog , REXX , Smalltalk , Self , Tcl , Lua , Limbo
Licens Apache License 2.0 og Apache License [1]
Internet side rebol.com _ 
_

REBOL (udtales ['reb'yell] ) er et kontekstfølsomt objektprogrammeringssprog designet specifikt til distribueret computerbehandlingnettet . REBOL står for Relative Expression Based Object Language.

Forfatteren positionerer REBOL som et meddelelsessprog:

Historie

Carl Sassenrath , arkitekt ("af sprogets ord og begreber")var hovedudvikleren af ​​AmigaOS , før han grundlagde REBOL Technologies [2] . Allerede før det arbejdede han hos Apple Computer og Hewlett Packard , hvor han fik erfaring med at udvikle operativsystemer, filsystemet, og formulerede sit eget koncept med en mikrokerne til et computeroperativmiljø.

Han begyndte at arbejde som 13-årig i et tv-selskab, hvor han som 14-årig var teknisk direktør for et dagligt nyhedsprogram. Uddannet fra University of California i Davis , med speciale i operativsystemer , parallelle processer , programmeringssprog og neurofysiologi .

Hans projekt blev straks en udfordring, først og fremmest at sætte en stopper for udviklingen af ​​markup-sprog. Men firmaet fortsætter med at overraske med sine beslutninger, på vej mod et udvalg af afbalancerede programmeringskoncepter og omhyggelig implementering. Virksomhedens første produkt er allerede den anden version af sproget (1998). Straks begyndte ændringer af kernen med dialekter at dukke op:

For avancerede brugere (udviklere):

Som et eksempel på et kommercielt produkt:

I øjeblikket er den tredje version blevet oprettet og er ved at blive testet.

Den 12. december 2012 annoncerede Karl Sassenrath [3] at REBOL 3 var open source under Apache-licensen .

Sprog

Programmering

REBOL er et metasprog på højt niveau. Grundlæggende begreber for sproget: scripts (tekster), udtryk, serier, blokke, filer, funktioner, objekter, moduler, porte, protokoller, parsing, matematik, fejl, grafik på lavt niveau, grafiske dialekter. Sproget er let at forstå, det kan læres til skolebørn og straks begynde at programmere. Men på samme tid er det ret kraftfuldt på grund af dets alsidighed, og individuelle teknikker og metoder kan være genstand for et dybt universitetskursus.

REBOL tillader strukturel, modulær, funktionel og prototype-baseret programmering. REBOL er ikke et rent funktionelt sprog, men programmering i kommandostil (et imperativ er egentlig ikke en funktion) understøttes. Den mindste leksikale enhed er ordet  - kun et sæt tegn. Ved hjælp af sproget kan ethvert ord tillægges en meget forskellig betydning , som kan gå langt ud over begreberne i det grundlæggende programmeringsmiljø, som hovedsageligt anvender et sæt grundlæggende funktioner (460). De har lov til at blive kædet sammen på den ene eller anden måde inden for rammerne af det objektorienterede paradigme, som tillader, med forskellige faste datatyper, støtte til andre mulige programmeringsparadigmer uden at forlade konteksten (det vil sige inde i grundvokabularet). REBOL er især god til domænesprogsorienteret programmering kaldet DIALECTS.

REBOL er dynamisk og dynamisk indtastet (værdier er stærkt indtastet, variabler ikke). Den bruger skraldopsamling til hukommelseshåndtering, understøtter undtagelseshåndtering og dynamisk navneopløsning (via beregnet binding).

Og med alt dette bevarer sproget status som et mikrosystem og øger konstant dets funktionelle kraft. For eksempel kræver dets konkurrent med hensyn til opgaver (at være en mellemmand af X-Internet eller som det nu er moderne at sige Web 3.0 ) curl hundredvis af gange mere hukommelse (!) og faktisk tabt i konceptet for effektivitet, trods deltagelse af sådanne monstre i det, som tidligere leder af IBM Instruments Robert Young og grundlægger af internettet Tim Berners-Lee [4] .

Datadefinition og -udveksling

For at understøtte brugen af ​​sproget som et dataudvekslingssprog har REBOL en minimal syntaks med følgende egenskaber:

Som et datasprog understøtter REBOL stærkt indtastede værdier - omkring 60 indbyggede datatyper. Ligesom mange programmeringssprog er der grundlæggende typer, såsom heltal, decimaler og strenge. REBOL udvider rækken af ​​datatyper ved at identificere dem med en leksikalsk form for at inkludere værdierne for selve typen:

Disse datatyper bruger leksikalske former, der er kendt for mange, ikke kun programmører, for at lette deres brug som et data (meddelelses) udvekslingssprog. Hoveddatastrukturen i REBOL, der bruges til at gruppere et bestemt sæt værdier, er blok! , (placeret i firkantede parenteser [ ] ), som ret nemt forbindes med lister i Lisp eller tags i markup-sprog.

Implementering

Tolken er tilgængelig i flere versioner (/Core, /View, /Command), samt (/Base, /Face og /Pro) til SDK.

REBOL-fortolkerens kildekode er frit distribueret og kræver ikke installation. REBOL/View er også frit tilgængelig. Udvidede versioner som REBOL/Pro kræver et licensgebyr, de tilføjer funktioner som databaseadgang, muligheden for at bruge dynamisk indlæste biblioteker og muligheden for at skabe selvstændige (eksekverbare) programmer til udviklere (f.eks. .exe til Win). I den tredje version er det planlagt at åbne hele grænsefladen.

Kørselstiden er i øjeblikket gemt i en enkelt eksekverbar fil. REBOL/Core, konsolversionen, er cirka 300 KB i størrelse . REBOL/View, GUI-versionen (Graphical User Interface), er cirka 600 KB i størrelse . Applikationsprogrammer, nogle gange kaldet scripts, hvilket ikke er helt korrekt for dette sprog - sjældent mere end et par kilobyte. Så du kan lægge tolken og den eksekverbare (kode) selv på den samme diskette (ikke engang tale om et USB-512 flashdrev) eller sende det via e-mail eller eksekvere det direkte fra internettet.

Runtimen inkluderer understøttelse af mange internetprotokoller, hvilket gør det nemt at oprette internetapplikationer såsom e-mail-agenter eller webapplikationer og generelt klient-serverapplikationer af enhver skala.

REBOL/View giver platform-uafhængig adgang til grafik- og lydfunktioner, inkluderer et platform-uafhængigt vinduesværktøjssæt med et vilkårligt, udvideligt sæt af GUI-stile. Således kan du oprette distribuerede applikationer, der har en grafisk brugerflade på forskellige platforme. At bruge ideen om Rebol-dialekter er en effektiv løsning til udvikling af fremtidige X-Internet-applikationer.

REBOL-fællesskabet er også forbundet via et fælles "REBOL-skrivebord"  - en grafisk repræsentation af REBOL-filer gemt på internettet, kaldet "REB-Site". "REBOL Desktop" installeres med det samme sammen med REBOL/View-fortolkeren og kræver ingen anden browser for at virke. Selve REBOL-skrivebordet er et open source REBOL-program.

Eksempler

Hej Verden:

I konsollen skriver du blot:

print "Hej verden!"

Lad os skabe en platform-uafhængig GUI:

REBOL[ Titel: "Hej verden i et vindue" Fil:%hello-view.r Dato: 12-januar-2002 ] se layout [ tekst "Hej verden!" knap "Afslut" [afslut] ]

Og her er et rudimentært internetprogram, der bruger HTTP og SMTP :

REBOL[ Titel: "Websidemailer" Fil: %sendwebpage.r Dato: 12-januar-2002 Formål: "Hent et HTML-dokument fra nettet og send det via e-mail" ] send [email protected] læs http://www.rebol.com

Hvert REBOL-program skal indeholde en header-sektion, der begynder med ordet REBOL, så tolken ved, hvor koden starter. Titlen må kun indeholde REBOL []; Det er dog god praksis at have en udførlig titel, som i eksemplet ovenfor.

Dialekter

REBOL er et kontekstfølsomt sprog, der understøtter domænespecifikke undersprog kaldet dialekter. Et eksempel på REBOL kontekstfølsomhed kan illustreres med ordet retur . I "normal" udførelse returnerer return inden for en funktion værdien af ​​resultatet af dens udførelse. I forbindelse med Visual Interface Dialect (VID) angiver tilstedeværelsen af ​​ordet retur en ny linje. En REBOL-programmør kan skabe sine egne dialekter ved at genbruge et hvilket som helst eksisterende REBOL-ord, associere med det forskellige betydninger, der er relevante i forbindelse med den dialekt, til dette formål har sproget kraftfulde (men nemme at bruge) faciliteter til at hjælpe med dialektdesign.

REBOL-lignende sprog

ORCA [5]  er en indlejrbar REBOL-lignende sprogfortolker implementeret som et C -bibliotek og distribueret under betingelserne i LGPL . Ved kompilering anvendes REBOL- eller ORCA-fortolkeren.

Boron [6]  er en anden REBOL-lignende sprogtolk skrevet i C. Designet til at blive integreret i applikationer. Distribueret under betingelserne i GPL 3 .

RebGUI [7]  - Alternativ til REBOL/Se VID.

Rød compiler

I februar 2011 på REBOL & Boron-konferencen i Holland [8] præsenterede den franske programmør Nenad Rakocevic en alfaversion af det REBOL-baserede sprog Red [9] [10] for offentligheden . Dette er et ret simpelt systemprogrammeringssprog på lavt niveau, der kan udvides , som giver dig mulighed for at definere forskellige DSL'er designet til brug i en bred vifte af opgaver. Sprogimplementeringen er en compiler til maskinkode og distribueres under betingelserne i BSD-licensen [11] . Bruger REBOL-tolken under indledende kompilering. Det kører i øjeblikket Windows , Linux og Stavelse . I begyndelsen af ​​2013 fortsætter projektet Red Programming Language med at udvikle sig aktivt.

Noter

  1. https://api.github.com/repos/rebol/r3
  2. REBOL-sprog . Hentet 4. juni 2009. Arkiveret fra originalen 7. november 2008.
  3. R3 kildekode frigivet! . Dato for adgang: 13. december 2012. Arkiveret fra originalen 14. december 2012.
  4. Se X Internet, eller "Apple of the Sphinx Arkiveret 22. september 2015 på Wayback Machine "
  5. ORCA REBOL sprogklon . Hentet 2. februar 2010. Arkiveret fra originalen 7. december 2009.
  6. bor . Hentet 26. maj 2013. Arkiveret fra originalen 15. maj 2013.
  7. RebGUI . Hentet 26. maj 2013. Arkiveret fra originalen 14. maj 2013.
  8. Rejsen begynder! Arkiveret 9. juli 2011 på Wayback Machine , Red Programming Language, 27. februar 2011
  9. Rødt programmeringssprog . Hentet 22. juni 2011. Arkiveret fra originalen 23. juni 2011.
  10. Nyt rødt programmeringssprog får stavelse backend arkiveret 23. juni 2011 på Wayback Machine , OSNews
  11. Rødt programmeringssprogGitHub

Links