Corso di Rebol - Lezione 1
Torna all'elenco delle lezioni Introduzione all'uso di REBOL

Introduzione

REBOL è un linguaggio interpretato ideato da Carl Sassenrath, già noto per aver realizzato il nucleo del sistema operativo dei computer Amiga (cioè Exec), con lo scopo di semplificare la comunicazione tra applicazioni in esecuzione sullo stesso computer o su computer diversi.
Per far ciò esistono degli strumenti implementati a livello nativo, cioè compresi nella parte compilata del linguaggio, che permettono di gestire nello stesso modo strutture di dati presenti in memoria (ad esempio liste), file locali (accessibili tramite il sistema operativo della macchina su cui il programma è in esecuzione) e file remoti (accessibili tramite ftp o http), ciò a tutto vantaggio del polimorfismo e della riusabilità del codice, concetti che non sono più molto di moda, da quando la moda è la programmazione "visuale".
Il fatto che il linguaggio sia interpretato non garantisce la maggiore velocità di esecuzione ottenibile su una data macchina, ma ciò è compensato dalla velocità di sviluppo del codice, inoltre le parti più critiche sono native (ad esempio l'ordinamento di una serie di dati).
Attualmente la versione disponibile gratuitamente è REBOL/Core, che non ha un'interfaccia grafica, e in progetto ci sono due versioni commerciali, una pensata per realizzazioni multimediali (REBOL/Media) e una pensata per una maggiore integrazione con il sistema operativo (REBOL/Command).
Uno degli obiettivi di REBOL è fare in modo che un programma funzioni senza modifiche su una qualsiasi delle piattaforme supportatate (che sono 45, considerando anche le varianti).

Caratteristiche del linguaggio

L'elemento fondamentale di REBOL è la parola (word) e, come nel linguaggio umano, una stessa parola può avere un significato, o valore, diverso a seconda del contesto (context) in cui viene usata.
Ogni valore che una parola può avere appartiene ad un tipo di dati (datatype), ma non esiste il concetto di "dichiarazione di tipo" in quanto ad ogni parola è possibile dare successivamente valori con tipi diversi. Non esistono nemmeno i concetti di variabile e di costante in quanto il valore di una parola può essere cambiato in ogni momento, ciò è talmente vero che può essere cambiato anche il valore delle parole definite da REBOL a livello nativo.
Una parola può contenere qualsiasi valore esprimibile da REBOL, quindi sia dati che codice e il contenuto di una parola può essere passato all'interprete per essere eseguito, nello stesso modo in cui si passerebbe il contenuto di un file (locale, tramite ftp, o http).
Per quanto riguarda i calcoli matematici, sono implementate le operazioni algebriche, i logaritmi e alcune funzioni trigonometriche, ma il confronto tra due valori numerici avviene con una tolleranza stabilita dal linguaggio, non dal programmatore, per cui, ad esempio, 1e-16 risulta uguale a 1e-32, ma d'altra parte REBOL non è un linguaggio pensato per applicazioni matematiche.
L'accesso ai file locali avviene specificandone nome e percorso in un modo che cerca di tenere conto delle esigenze di portabilità e le caratteristiche del sistema operativo sottostante, per cui la sintassi del nome dei file è definita da REBOL, ma viene tradotta automaticamente per seguire le convenzioni del sistema operativo.

Installazione

Per eseguire la prima installazione è necessario prelevare l'archivio corrispondente al sistema operativo desiderato dal sito www.rebol.com compilando un breve questionario.
Per eseguire gli aggiornamenti è sufficiente usare la parola 'upgrade che provvede a prelevare tramite ftp il corretto archivio che andrà scompattato.
Una volta scompattato l'archivio è consigliabile consultare il file readme.html (oppure readme.txt) che contiene istruzioni per l'installazione con dettagli specifici sui diversi sistemi operativi. In linea di massima è sufficiente mettere il file eseguibile di REBOL nella posizione adatta al sistema operativo in uso e eventualmente impostare una o due variabili di ambiente.

La prima esecuzione

Alla prima esecuzione, REBOL cerca il file user.r e se non lo trova provvede a crearlo eseguendo lo script rebol.r che chiede l'indirizzo email dell'utente, l'indirizzo del server SMTP e del proxy con il numero di porta e il tipo; tali domande sono ripetute ogni qualvolta il file user.r non venga trovato nelle posizioni prestabilite. Inoltre è possibile cambiare temporaneamente queste impostazioni scrivendo la parola set-net al prompt di REBOL, mentre se si vogliono cambiare definitivamente è necessario modificare il file user.r.
E' consigliabile effettuare la prima esecuzione quando si è collegati ad Internet in modo da verificare immediatamente le impostazioni relative alla posta e al proxy.

Gli indirizzi relativi alla posta e al proxy

Le impostazioni indispensabili sono l'indirizzo di posta elettronica, che verrà memorizzato in system/user/email, e l'indirzzo del server per la posta in uscita, che verrà memorizzato in system/schemes/default/host.
Se il server per la posta in entrata (secondo il protocollo POP) è diverso da quello della posta in ingresso è necessario modificare con un editor il file user.r nella riga simile alla seguente:

set-net [ user@domain.dom smtp.domain.dom none none ]

in modo da sostituire la prima parola "none" con il giusto indirizzo, ad esempio:

set-net [ user@domain.dom smtp.domain.dom pop.domain.dom none ]

Se si è connessi direttamente ad Internet (ad esempio tramite un modem) tramite un provider locale, in genere si può ottimizzare la velocità dei collegamenti ai siti più visitati impostare il proxy solo per le connessioni ftp e http e non, ad esempio, per le connessioni relative alla posta, per cui il contenuto di user.r potrebbe essere simile al seguente:


set-net [ user@domain.dom smtp.domain.dom pop.domain.dom none ]

system/schemes/http/proxy/host: "proxy.domain.dom"
system/schemes/http/proxy/port-id: 8080
system/schemes/http/proxy/type: 'generic

system/schemes/ftp/proxy/host: "proxy.domain.dom"
system/schemes/ftp/proxy/port-id: 8080
system/schemes/ftp/proxy/type: 'generic

ATTENZIONE: in alcuni casi il protocollo ftp funziona solo se non usa il proxy.

Se invece si è connessi ad Internet tramite una rete locale e un proxy o un firewall è necessario inserirne le impostazioni in modo che tutti i protocolli ne facciano uso, ad esempio:

set-net [ user@domain.dom smtp.domain.dom pop.domain.dom proxy.domain.dom 1080 'socks ]

Le possibili alternative per il proxy sono:

'none per non usare nessun proxy
'socks per usare il tipo di proxy predefinito per REBOL (il più recente che l'interprete supporta, che attualmente è la versione 5)
'genericper un proxy tipo che segue lo standard del CERN (come Squid)
'socks4 per usare un proxy in versione 4
'socks4 per usare un proxy in versione 5


Se infine si è connessi ad Internet tramite un provider a livello nazionale, in genere il proxy non esiste, per cui vanno bene i valori di default, cioè none.

Esiste anche la possibilità di non usare il proxy, ad esempio per i collegamenti sulla rete locale o verso un sito dedicato all'home banking, e questo può essere fatto per ogni protocollo indipendentemente dagli altri.
Ad esempio, per collegarsi direttamente al sito 1.2.3.4 e a tutti i siti il cui indirizzo inizia con 5.6.7:

system/schemes/http/proxy/bypass: [ 1.2.3.4 "5.6.7.*" ]

Infine è possibile fornire una password, al limite diversa per ogni protocollo, con cui connettersi al proxy o al firewall:

system/schemes/http/proxy/user: "account"
system/schemes/http/proxy/pass: "segreto"

Parole attinenti all'installazione di REBOL:

help fornisce alcune informazioni sull'uso di REBOL
set-net permette di cambiare l'indirizzo di posta elettronica, quello del server SMTP e quello del proxy
trace/netpermette di vedere alcune informazioni sui collegamenti Internet, in modo da scoprire errori di configurazione
upgrade si collega al sito www.rebol.com, verifica se esiste una versione di REBOL più recente di quella attualmente in uso e dà la possibilità di prelevarla
usage fornisce informazioni sulle opzioni della riga di comando


<--Prev Index Next-->

Copyright AMiWoRLD