Differenze tra le versioni di "Gambas"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
'''Gambas''' è un potente ambiente per piattaforme *nix per lo sviluppo di applicazioni basato sul linguaggio [[BASIC]] con estensione agli oggetti.
+
'''Gambas''' è un potente ambiente per lo sviluppo di applicazioni per piattaforme *nix basato sul linguaggio [[BASIC]] con estensione agli oggetti. Gambas indica al contempo sia l'[[IDE]] (Integrated Development Environment), vale a dire l'ambiente di sviluppo, sia il linguaggio stesso. L'interprete di Gambas è scritto in C/C++ ma tutto l'[[IDE]] è scritto in Gambas. Gambas gira sia su sistemi a 32 che a 64 bit.
Gambas indica al contempo sia l'[[IDE]] (Integrated Development Environment), vale a dire l'ambiente di sviluppo, sia il linguaggio stesso. L'interprete di Gambas è scritto in C/C++ ma tutto l'[[IDE]] è scritto in Gambas.
 
  
 
Con Gambas è possibile realizzare applicazioni ''stand-alone'' con [[GUI]] basate su [[GTK]] o [[Qt]], accedere ai database MySQL, PostgreSQL, Firebird, ODBC ed SQLite, pilotare le applicazioni KDE con DCOP, realizzare applicazioni 3D con OpenGL ed anche applicazioni web basate su CGI. E' inoltre possibile tradurre i propri progetti per renderli internazionali.
 
Con Gambas è possibile realizzare applicazioni ''stand-alone'' con [[GUI]] basate su [[GTK]] o [[Qt]], accedere ai database MySQL, PostgreSQL, Firebird, ODBC ed SQLite, pilotare le applicazioni KDE con DCOP, realizzare applicazioni 3D con OpenGL ed anche applicazioni web basate su CGI. E' inoltre possibile tradurre i propri progetti per renderli internazionali.
  
 +
== Nascita di Gambas ==
 
Gambas è opensource ed è nato nel 1999 dalla mente di '''[[Benoit Minisini]]'''. Come spiega il "padre" di Gambas, negli anni Novanta andava di moda chiamare i nuovi linguaggi di programmazione con nomi di animali: Python, Camel, Bonobo, ecc... Minisini ricercava anche un acronimo che fosse ricorsivo con l'idea alla base di Gambas, un linguaggio molto simile al [[BASIC]]. Fu scelto perciò '''GAMBAS''', che in spagnolo significa ''Gambero'' (ecco quindi l'animale) ma che è anche l'acronimo di '''Gambas Almost Means BASic''' (Gambas più o meno significa BASIC).
 
Gambas è opensource ed è nato nel 1999 dalla mente di '''[[Benoit Minisini]]'''. Come spiega il "padre" di Gambas, negli anni Novanta andava di moda chiamare i nuovi linguaggi di programmazione con nomi di animali: Python, Camel, Bonobo, ecc... Minisini ricercava anche un acronimo che fosse ricorsivo con l'idea alla base di Gambas, un linguaggio molto simile al [[BASIC]]. Fu scelto perciò '''GAMBAS''', che in spagnolo significa ''Gambero'' (ecco quindi l'animale) ma che è anche l'acronimo di '''Gambas Almost Means BASic''' (Gambas più o meno significa BASIC).
Anche se molto spesso si tende ad indicare la similitudine con il ''Microsoft Visual Basic'' per spiegare ai profani a cosa più assomiglia, Gambas non è un clone di questo linguaggio e le applicazioni dell'uno non possono girare sull'altro: le similitudini fra i 2 sono limitate al linguaggio di base, il [[BASIC]].
+
Anche se molto spesso si tende ad indicare la similitudine con il ''Microsoft Visual Basic'' per spiegare ai profani a cosa più assomiglia, Gambas non è un clone di questo linguaggio e le applicazioni dell'uno non possono girare sull'altro: le similitudini sono limitate al linguaggio di base, il [[BASIC]].
  
 +
== Linguaggio pseudo-compilato ==
 
Gambas non è un linguaggio compilato come il C, dove l'eseguibile viene creato durante la compilazione del sorgente, ma non è neanche un linguaggio interpretato come il vecchio [[BASIC]], dove ogni istruzione viene analizzata ed eseguita via via che il flusso dell'elaborazione attraversa il listato del codice. Gambas può creare dei cosiddetti "eseguibili", che altro non sono che archivi non compressi contenenti l'applicazione scritta in Gambas convertita in ''byte-code'', uno pseudo codice a metà fra il linguaggio macchina puro ed il codice originale scritto in Gambas, che l'interprete Gambas può eseguire più velocemente rispetto ad una interpretazione del codice comando per comando. Questo modo di operare è comune ad altri linguaggi, ad esempio Python o Ruby: anch'essi traducono il codice sorgente in byte-code la prima volta che viene eseguito il programma, in modo da avere la versione "più veloce" pronta per le successive esecuzioni.
 
Gambas non è un linguaggio compilato come il C, dove l'eseguibile viene creato durante la compilazione del sorgente, ma non è neanche un linguaggio interpretato come il vecchio [[BASIC]], dove ogni istruzione viene analizzata ed eseguita via via che il flusso dell'elaborazione attraversa il listato del codice. Gambas può creare dei cosiddetti "eseguibili", che altro non sono che archivi non compressi contenenti l'applicazione scritta in Gambas convertita in ''byte-code'', uno pseudo codice a metà fra il linguaggio macchina puro ed il codice originale scritto in Gambas, che l'interprete Gambas può eseguire più velocemente rispetto ad una interpretazione del codice comando per comando. Questo modo di operare è comune ad altri linguaggi, ad esempio Python o Ruby: anch'essi traducono il codice sorgente in byte-code la prima volta che viene eseguito il programma, in modo da avere la versione "più veloce" pronta per le successive esecuzioni.
  
 +
== Architettura ==
 +
L'architettura di Gambas è largamente ispirata da quella di Java. Gambas è costituito da
 +
* un compilatore;
 +
* un interprete;
 +
* un archiviatore;
 +
* uno scripter;
 +
* un ambiente di sviluppo;
 +
* molti componenti per estendere il linguaggio.
 +
 +
=== Il compilatore ===
 +
Il '''compilatore''' è un eseguibile scritto in C. E' capace di compilare circa 128.000 linee di codice in un secondo su un AMD Athlon 2000+. Questa velocità permette un processo di sviluppo molto rapido perché si riduce il tempo di test rispetto a linguaggi prettamente compilati come il C. Il compilatore è capace di gestire e compilare le stringhe di traduzione per l'internazionalizzazione dei progetti grazie a strumenti quali gettext.
 +
Il compilatore crea un file composto da bytecode, uno speciale codice a metà fra Gambas ed il codice macchina, più veloce da eseguire rispetto al linguaggio di partenza.
 +
 +
=== L'interprete ===
 +
L''''interprete''' è un piccolo eseguibile (meno di 190 KB) scritto anch'esso in C. Esso carica le classi quando richiesto, ottimizzando il bytecode la prima volta che viene eseguito. Il link fra le classi viene eseguito interamente durante l'esecuzione del codice solo nel momento del reale utilizzo: in questo modo anche grandi eseguibili si avviano molto rapidamente.
 +
 +
=== L'archiviatore ===
 +
L''''archiviatore''' è un programma che crea gli eseguibili Gambas partendo dalla cartella del progetto. Da notare che un eseguibile Gambas non è altro che un archivio non compresso che può contenente qualunque tipo di file, non solo il bytecode compilato. Internamente l'interprete accede all'archivio come fosse un filesystem.
 +
 +
== Il linguaggio Gambas ==
 +
Il linguaggio BASIC di Gambas è composto da circa 250 parole chiave e funzioni predefinite per gestire operazioni aritmetiche, manipolazioni di stringhe, input ed output, file, date ed orari, ecc... Offre un gestore completo degli errori, un pieno controllo del processo con gestione tramite pseudo-terminale, pieno supporto all'internazionalizzazione delle applicazioni, possibilità di richiamare funzioni esterne.
 +
 +
Gambas è anche un linguaggio pienamente orientato agli oggetti. Gestisce infatti:
 +
* classi ed oggetti;
 +
* proprietà, metodi, costanti ed eventi;
 +
* simboli pubblici e privati;
 +
* polimorfismo;
 +
* ereditarietà;
 +
* costruttori e distruttori;
 +
* enumeratori ed oggetti ordinabili.
 +
 +
Il meccanismo dell'ereditarietà di Gambas è interamente dinamico e permette di:
 +
* creare una versione più specializzata di una classe già esistente;
 +
* reimplementare una classe ed estenderla;
 +
* effettuare l'overload di metodi o proprietà di una classe.
 +
 +
Qualunque classe può essere ereditata, reimplementata o gestito l'overload, anche le classi native scritte in C/C++.
 +
 +
Infine, una classe nativa denominata Observer permette di intercettare qualunque evento sollevato da un oggetto.
 +
 +
== Problemi noti ==
 +
Gambas non permette di dichiarare dati enumerabili e non supporta le strutture di dati. Inoltre il componente GTK+ non è ancora completamente terminato per cui l'indipendenza grafica dei progetti non è ancora completa.
 +
 +
== Licenza ==
 
Gambas è rilasciato sotto licenza '''Gnu GPL'''.
 
Gambas è rilasciato sotto licenza '''Gnu GPL'''.

Versione delle 04:55, 2 mar 2009

Gambas è un potente ambiente per lo sviluppo di applicazioni per piattaforme *nix basato sul linguaggio BASIC con estensione agli oggetti. Gambas indica al contempo sia l'IDE (Integrated Development Environment), vale a dire l'ambiente di sviluppo, sia il linguaggio stesso. L'interprete di Gambas è scritto in C/C++ ma tutto l'IDE è scritto in Gambas. Gambas gira sia su sistemi a 32 che a 64 bit.

Con Gambas è possibile realizzare applicazioni stand-alone con GUI basate su GTK o Qt, accedere ai database MySQL, PostgreSQL, Firebird, ODBC ed SQLite, pilotare le applicazioni KDE con DCOP, realizzare applicazioni 3D con OpenGL ed anche applicazioni web basate su CGI. E' inoltre possibile tradurre i propri progetti per renderli internazionali.

Nascita di Gambas

Gambas è opensource ed è nato nel 1999 dalla mente di Benoit Minisini. Come spiega il "padre" di Gambas, negli anni Novanta andava di moda chiamare i nuovi linguaggi di programmazione con nomi di animali: Python, Camel, Bonobo, ecc... Minisini ricercava anche un acronimo che fosse ricorsivo con l'idea alla base di Gambas, un linguaggio molto simile al BASIC. Fu scelto perciò GAMBAS, che in spagnolo significa Gambero (ecco quindi l'animale) ma che è anche l'acronimo di Gambas Almost Means BASic (Gambas più o meno significa BASIC). Anche se molto spesso si tende ad indicare la similitudine con il Microsoft Visual Basic per spiegare ai profani a cosa più assomiglia, Gambas non è un clone di questo linguaggio e le applicazioni dell'uno non possono girare sull'altro: le similitudini sono limitate al linguaggio di base, il BASIC.

Linguaggio pseudo-compilato

Gambas non è un linguaggio compilato come il C, dove l'eseguibile viene creato durante la compilazione del sorgente, ma non è neanche un linguaggio interpretato come il vecchio BASIC, dove ogni istruzione viene analizzata ed eseguita via via che il flusso dell'elaborazione attraversa il listato del codice. Gambas può creare dei cosiddetti "eseguibili", che altro non sono che archivi non compressi contenenti l'applicazione scritta in Gambas convertita in byte-code, uno pseudo codice a metà fra il linguaggio macchina puro ed il codice originale scritto in Gambas, che l'interprete Gambas può eseguire più velocemente rispetto ad una interpretazione del codice comando per comando. Questo modo di operare è comune ad altri linguaggi, ad esempio Python o Ruby: anch'essi traducono il codice sorgente in byte-code la prima volta che viene eseguito il programma, in modo da avere la versione "più veloce" pronta per le successive esecuzioni.

Architettura

L'architettura di Gambas è largamente ispirata da quella di Java. Gambas è costituito da

  • un compilatore;
  • un interprete;
  • un archiviatore;
  • uno scripter;
  • un ambiente di sviluppo;
  • molti componenti per estendere il linguaggio.

Il compilatore

Il compilatore è un eseguibile scritto in C. E' capace di compilare circa 128.000 linee di codice in un secondo su un AMD Athlon 2000+. Questa velocità permette un processo di sviluppo molto rapido perché si riduce il tempo di test rispetto a linguaggi prettamente compilati come il C. Il compilatore è capace di gestire e compilare le stringhe di traduzione per l'internazionalizzazione dei progetti grazie a strumenti quali gettext. Il compilatore crea un file composto da bytecode, uno speciale codice a metà fra Gambas ed il codice macchina, più veloce da eseguire rispetto al linguaggio di partenza.

L'interprete

L'interprete è un piccolo eseguibile (meno di 190 KB) scritto anch'esso in C. Esso carica le classi quando richiesto, ottimizzando il bytecode la prima volta che viene eseguito. Il link fra le classi viene eseguito interamente durante l'esecuzione del codice solo nel momento del reale utilizzo: in questo modo anche grandi eseguibili si avviano molto rapidamente.

L'archiviatore

L'archiviatore è un programma che crea gli eseguibili Gambas partendo dalla cartella del progetto. Da notare che un eseguibile Gambas non è altro che un archivio non compresso che può contenente qualunque tipo di file, non solo il bytecode compilato. Internamente l'interprete accede all'archivio come fosse un filesystem.

Il linguaggio Gambas

Il linguaggio BASIC di Gambas è composto da circa 250 parole chiave e funzioni predefinite per gestire operazioni aritmetiche, manipolazioni di stringhe, input ed output, file, date ed orari, ecc... Offre un gestore completo degli errori, un pieno controllo del processo con gestione tramite pseudo-terminale, pieno supporto all'internazionalizzazione delle applicazioni, possibilità di richiamare funzioni esterne.

Gambas è anche un linguaggio pienamente orientato agli oggetti. Gestisce infatti:

  • classi ed oggetti;
  • proprietà, metodi, costanti ed eventi;
  • simboli pubblici e privati;
  • polimorfismo;
  • ereditarietà;
  • costruttori e distruttori;
  • enumeratori ed oggetti ordinabili.

Il meccanismo dell'ereditarietà di Gambas è interamente dinamico e permette di:

  • creare una versione più specializzata di una classe già esistente;
  • reimplementare una classe ed estenderla;
  • effettuare l'overload di metodi o proprietà di una classe.

Qualunque classe può essere ereditata, reimplementata o gestito l'overload, anche le classi native scritte in C/C++.

Infine, una classe nativa denominata Observer permette di intercettare qualunque evento sollevato da un oggetto.

Problemi noti

Gambas non permette di dichiarare dati enumerabili e non supporta le strutture di dati. Inoltre il componente GTK+ non è ancora completamente terminato per cui l'indipendenza grafica dei progetti non è ancora completa.

Licenza

Gambas è rilasciato sotto licenza Gnu GPL.