REALbasic

Da Wikipedia, l'enciclopedia libera.
REALbasic
Autore REAL Software
Data di origine
Ultima versione 2013r4.1
Utilizzo General purpose
Paradigmi Orientato agli oggetti, a eventi
Tipizzazione Forte
Influenzato da BASIC
Implementazione di riferimento
Implementazione compilatore
Sistema operativo Windows, Linux, Mac OS X
Licenza Proprietaria
Sito web xojo.com

REALbasic (RB) è un linguaggio di programmazione orientato agli oggetti basato su BASIC sviluppato e commercializzato da REAL Software, azienda con sede ad Austin, Texas per Mac OS X, Microsoft Windows, Linux 32-bit x86 e web.

Storia[modifica | modifica sorgente]

REALbasic è stato creato da Andrew Barry. Il nome originariamente era CrossBasic, per sottolineare la sua capacità di compilare lo stesso codice di programmazione per Mac OS e Java (anche se l'ambiente di sviluppo integrato era solo Mac). Nel 1997 CrossBasic fu acquistato da FYI Software, che cambiò il suo nome in REALbasic e il nome dell'azienda stessa in REAL Software. Fu in questo periodo che venne abbandonato il target Java e furono aggiunti il target Windows ed il supporto database. L'IDE è ora disponibile per Microsoft Windows, Mac OS X, e Linux 32-bit x86 e può compilare applicazioni per Windows (Windows 2000 e superiore), Mac OS X (PowerPC, Intel, e Universal Binary) e Linux 32-bit x86. In aprile 2009 è uscito il nuovi IDE con il nome RealStudio, che permette di creare anche applicazioni web. Da giugno 2013 il prodotto si chiama Xojo, con una serie di nuove funzionalità e una nuova politica di licenze.

Caratteristiche del linguaggio[modifica | modifica sorgente]

Anche se REALbasic (RB) usa la parola "basic" nella sua descrizione come una variante del linguaggio di programmazione BASIC, RB non si conforma allo standard ANSI per il linguaggio di programmazione BASIC. Ad esempio, il codice sorgente ANSI Standard di semplici programmi demo in TrueBASIC non compilerà in RB senza una riscrittura completa. RB non supporta l'operazione matematica matrix standard "mat" che rende ANSI BASIC uno strumento utile per l'insegnamento di concetti di programmazione introduttivi. RB è un linguaggio fortemente tipizzato con una conversione automatica di tipo ridotta al minimo, che supporta ereditarietà singola e interfacce, metodi e proprietà di classe, gestione della memoria automatica tramite il conteggio dei riferimenti, e il sovraccarico degli operatori. Una funzione importante è la capacità di estendere (non solo ereditare) classi esistenti, come le categorie Objective-C. Questa particolarità riduce considerevolmente il bisogno di Abstract factory pattern, che complicano l'uso di Framework applicativi in Java e C++. REALbasic include anche la funzione delegate, l'introspezione, e il supporto a namespace, che consentono ai moduli di contenere classi, interfacce e altri moduli.

Caratteristiche del framework[modifica | modifica sorgente]

Come viene descritto nelle note al linguaggio, il framework incluso in RB supporta (REAL SOftware 2008):

La funzionalità framework può anche essere estesa con la creazione di plugin usando il Plugin SDK fornito da REAL Software. I plug-in sono creati usando C/C++ con una varietà di compilatori supportati, inclusi Xcode, Microsoft Visual Studio e GCC. I plug-in possono supportare tutte le piattaforme supportate da REALbasic.

Formato file[modifica | modifica sorgente]

Il formato del file sorgente contiene dati per la disposizione di finestre e controlli ed è proprietario, anche se l'importazione e l'esportazione in formato XML sono supportate. Tutto il codice sorgente può essere contenuto in un file di progetto, ma è possibile anche avere classi/moduli in file separati nella stessa maniera in cui possono farlo la maggior parte degli altri linguaggi e dialetti. REALbasic compila direttamente in codice macchina per ogni piattaforma supportata. REALbasic 2006 Release 3 e successive supportano anche un formato testuale che consente l'utilizzo di strumenti di controllo della versione quali Subversion or CVS.

Edizioni dell'IDE[modifica | modifica sorgente]

Ci sono tre versioni dell'IDE:

  • REAL Studio include tutte le caratteristiche della Professional Edition, più altre funzioni per programmatori a tempo pieno.
  • La Professional Edition può compilare programmi per Max OS X (PowerPC Carbon Mach-O, i386 Carbon Mach-O e Universal Binary), Linux e Windows dallo stesso codice sorgente; può anche accedere a database (REAL Server, MySQL, Oracle, PostgreSQL, ODBC, ecc.) compreso il motore Database REAL SQL monoutente incluso, basato su SQLite; compila applicazioni console, ha un profiler di codice, può fare il debug remoto e ha numerose altre caratteristiche.
  • La Personal Edition compila solo programmi per la piattaforma sulla quale l'IDE sta girando (Windows, Linux e Mac) e non consente l'accesso a database diversi da quello incluso REAL SQL Database.

Caratteristiche IDE[modifica | modifica sorgente]

Entrambe le versioni dell'IDE permettono di costruire l'interfaccia utente grafica dell'applicazione trascinando i controlli dalla barra degli strumenti alla finestra che li contiene. Il posizionamento dei controlli è agevolato dall'IDE, che permette di allinearli (sia in orizzontale che in verticale) e fornisce informazioni sulla distanza tra i controlli o tra un controllo e i bordi della finestra.

Come molti IDE moderni, l'editor di codice supporta strumenti personalizzabili come l'evidenziazione della sintassi, il completamento automatico e il refactoring della struttura del codice. L'IDE include anche editor per menù e schemi di database, ed un visualizzatore per file multimediali come immagini, filmati o audio.

L'IDE dà al programmatore l'accesso alle funzioni di scripting tramite RBScript, che permette il controllo dell'IDE per automatizzare i task, come far avviare un test di regressione od avviare build notturne. Gli script possono essere sia globali sia specifici per un progetto.

REALbasic supporta la compilazione incrementale, attraverso cui il compilatore può ricompilare solo quelle parti di un progetto che sono state modificate. Per esempio, se soltanto il corpo di un metodo viene modificato, allora solo la voce del progetto contenente quel metodo necessita di essere ricompilata.

Esempi di codice[modifica | modifica sorgente]

Questo è un esempio di sovraccarico dell'operatore (operator overloading) per un'ipotetica classe Complex che permette di sommare un numero reale con un numero complesso, e di sommare due numeri complessi:

Function Operator_Add (rhs As Single) As Complex
  Dim ret As New Complex
  ret.Real = Self.Real + rhs
  ret.Imaginary = Self.Imaginary
  Return ret
End Function
 
Function Operator_Add (rhs As Complex) As Complex
  Dim ret As New Complex
  ret.Real = Self.Real + rhs.Real
  ret.Imaginary = Self.Imaginary + rhs.Imaginary
  Return ret
End Function

La stessa funzione può essere definita per accettare valori Double DataType. Questo codice mostra come usare la classe Complex per sommare un numero reale con un numero complesso:

 Dim First As New Complex (0, 1)
 Dim Second As New Complex (1, 1)
 Dim Sum As Complex
 Sum = First + 5.0 + Second
 // La somma sarà (6, 2)

Bibliografia[modifica | modifica sorgente]

Voci correlate[modifica | modifica sorgente]

Linguaggi BASIC affini[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]