Gambas: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
| (92 versioni intermedie di 44 utenti non mostrate) | |||
Riga 1:
{{
|
|
|didascalia =
|autore = [[Benoît Minisini]]
|data = 1999
|versione = 3.21.0 (20 ottobre 2025)
|utilizzo = generico
|paradigmi = [[Programmazione orientata agli oggetti]]
|tipizzazione = Forte, statica
|specifiche =
|estensione =
|
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo = Linux
|licenza = [[GNU General Public License|GPL]]
|lingua =
|sito_web =
}}
[[File:Gambas 3.8.0.jpg|thumb|upright=1.2|L'esempio "MineGame" incluso in Gambas 3. In esecuzione è la versione 3.8.0 su sistema Linux Mint 17.2.]]
'''Gambas''' è un [[linguaggio di programmazione]] [[programmazione orientata agli oggetti|orientato agli oggetti]] disponibile per piattaforme [[GNU/Linux]] ed altri [[sistema operativo|sistemi]] [[Unix]] o assimilati la cui sintassi è basata sul linguaggio [[BASIC]].
Gambas indica al contempo sia il linguaggio sia l'[[Integrated Development Environment|IDE]], anch'esso scritto in Gambas. L'interprete di Gambas è scritto in [[C (linguaggio)|C]]/[[C++]].
La '''IDE di Gambas3''' è interamente tradotta in italiano e inoltre contiene una ''Software farm'' con centinaia di esempi scritti dagli stessi utenti di Gambas, non tutti aggiornati.
==Storia==
Gambas è nato nel [[1999]] per mano di un [[programmatore]] francese di nome [[Benoît Minisini]] che voleva realizzare un nuovo linguaggio di programmazione per Linux, facile da apprendere e semplice da utilizzare come il [[Visual Basic]] di [[Microsoft]], di cui però non è un clone, come rimarca con decisione il suo autore<ref>[http://gambasdoc.org/help/doc/intro?en&view Gambas non è un clone di Microsoft Visual Basic] {{webarchive|url=https://web.archive.org/web/20110720073735/http://gambasdoc.org/help/doc/intro?en&view |data=20 luglio 2011 }} {{en}}</ref>. Anche se molto spesso si tende ad usare la similitudine con il Visual Basic per spiegare ai profani a cosa più assomiglia Gambas, i punti di contatto sono limitati al linguaggio di base, il BASIC, ma la sintassi dei comandi e la struttura dei programmi è diversa tant'è che un programma dell'uno non può girare sull'altro.
Gambas è [[free software]] ed è distribuito sotto [[licenza GPL]].
== Funzionalità ==
Con Gambas è possibile:
* realizzare applicazioni ''stand-alone'' con interfaccia grafica ([[GUI]]) basate su [[GTK+]] o [[Qt (toolkit)|Qt]];
* accedere ai database [[MySQL]], [[PostgreSQL
* pilotare le applicazioni [[KDE]] con [[DCOP]];
* realizzare applicazioni 3D con [[OpenGL]];
* creare applicazioni web basate su [[Computer-generated imagery|CGI]];
* interfacciarsi alla cartografia [[OpenStreetMap]] e [[Google_Maps]];
* è possibile tradurre i propri progetti per renderli internazionali.
Il suo ambiente di
== Il linguaggio Gambas ==
Gambas è un linguaggio di programmazione [[programmazione orientata agli oggetti|orientato agli oggetti]] [[programmazione strutturata|strutturato]] ed [[programmazione imperativa|imperativo]], [[tipizzazione forte|fortemente]] e [[tipizzazione statica|staticamente]] [[tipo di dato|tipizzato]].
Ciò significa che il controllo sui tipi dei dati delle variabili è eseguito in fase di compilazione e che il tipo di dati che una variabile conterrà non può essere modificato in fase di esecuzione.
Gambas è composto da circa 250 parole chiave e funzioni predefinite per gestire operazioni aritmetiche, manipolare stringhe, input ed output, file, date ed orari, ecc
Gambas è anche un linguaggio pienamente [[programmazione orientata agli oggetti|orientato agli oggetti]]. Gestisce infatti:
* [[
* proprietà, metodi, costanti ed eventi;
* simboli pubblici e privati;
* [[Polimorfismo (informatica)|polimorfismo]];
* [[Ereditarietà (informatica)|ereditarietà]];
* [[Costruttore (
* [[Iteratore|enumeratori]] ed oggetti ordinabili.
Riga 57 ⟶ 65:
Infine, una classe nativa denominata Observer permette di intercettare qualunque evento sollevato da un oggetto.
=== Linguaggio pseudo compilato ===
Gambas non è un [[linguaggio compilato]] come il [[C (linguaggio di programmazione)|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 [[bytecode]], 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 [[Java (linguaggio di programmazione)|Java]]: anch'essi traducono il codice sorgente in bytecode la prima volta che viene eseguito il programma, in modo da avere la versione "più veloce" pronta per le successive esecuzioni.
=== Versioni ===
Lo sviluppo di Gambas è iniziato nel 1999 ma la prima versione del linguaggio ad essere pubblicata, la 0.20, ha visto la luce solo il 28 febbraio 2002. Gambas è stato sviluppato inizialmente con il supporto per le sole librerie Qt di [[Trolltech]]. A questa versione sono seguiti 3 anni di intenso sviluppo durante i quali Gambas si è arricchito di comandi, funzioni e componenti fino ad arrivare al 1º gennaio 2005, quando è stata distribuita la versione 1.0. L'ultimo aggiornamento del ramo 1.0 è datato 16 luglio 2007, con l'uscita della versione 1.0.18. Gambas 1 non è più supportato.
Il
'''Gambas 3''' ha visto la luce il 31 dicembre 2011. L'IDE è stata ridisegnata e basata sulle librerie QT e diversi componenti sono stati rivisti.
=== Esempi di codice ===
Ecco il classico
<syntaxhighlight lang="vb">
PUBLIC SUB Main()
PRINT "Hello world!"
END
</syntaxhighlight>
L'esempio qui sopra stampa il messaggio "Hello World!" su terminale.
Questo è lo stesso esempio ma sfruttando l'interfaccia grafica:
<syntaxhighlight lang="vb">
PUBLIC SUB Form_Open()
Message.Info("Hello World!")
END
</syntaxhighlight>
L'istruzione <code>Message.Info</code> fa apparire una finestra di dialogo che visualizza il messaggio: Va inserita all'interno dell'evento ''Open()'' del ''form'' principale del programma.
Gambas supporta i [[Ciclo for|cicli]], la cui sintassi di un ciclo FOR..NEXT è la seguente:
<syntaxhighlight lang="vb">
PUBLIC SUB Main()
DIM variabile AS Integer
FOR variabile = 0 TO 10
PRINT "Numero " & Str
NEXT
END
</syntaxhighlight>
Il programma stampa su terminale il valore della variabile ''variabile''. Qui si nota anche la tipizzazione forte di Gambas: ''variabile'' ed il suo tipo di dati devono essere definiti prima del suo utilizzo.
Riga 109 ⟶ 118:
=== Il compilatore ===
Il '''compilatore''' è un eseguibile scritto in C.
Il compilatore crea un file composto da bytecode, uno speciale codice a metà fra Gambas ed il codice macchina puro, più veloce da eseguire rispetto al linguaggio di partenza.
Riga 117 ⟶ 126:
=== 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 se fosse un filesystem.
== Origini del nome ==
La scelta del nome è curiosa. Il creatore di Gambas notò che diversi progetti software avevano nomi di animali (es.: [[Bonobo (informatica)|Bonobo]]), ed i linguaggi di programmazione non sfuggivano a questa regola (es.: [[CAML|Camel]]). Egli voleva però anche un nome che ricordasse ciò che il suo linguaggio era, vale a dire un derivato del BASIC. Fu scelto perciò '''GAMBAS''', che è l'[[acronimo ricorsivo]] di '''''G'''ambas '''A'''lmost '''M'''eans '''BAS'''IC'' (Gambas più o meno significa BASIC) ma che è anche il nome di un animale, dato che la parola in spagnolo significa ''gambero''<ref>[http://gambasdoc.org/help/doc/faq?en&view Le origini del nome spiegate dall'autore stesso di Gambas] {{webarchive|url=https://web.archive.org/web/20110726073926/http://gambasdoc.org/help/doc/faq?en&view |data=26 luglio 2011 }} {{en}}</ref>.
==
<references/>
== Altri progetti ==
{{interprogetto
== Collegamenti esterni ==
* {{cita web|https://gitlab.com/gambas/gambas|Gambas Source Code}}
*
* {{cita web|https://lists.gambas-basic.org/archive/|Mailing Lists}}
*
{{Portale|informatica|software libero}}
[[Categoria:Software libero]]
[[Categoria:Ambienti di sviluppo]]
[[Categoria:BASIC]]
| |||