Sviluppato da | Progetto GNU |
---|---|
Prima versione | 1997 |
Ultima versione |
2.2.7 (7 marzo 2020) 3.0.5 (7 gennaio 2021) |
Depositare | git.savannah.gnu.org/cgit/guile.git |
Scritto in | VS |
Interfaccia | Infermiere |
Sistema operativo | GNU / Linux , BSD ( d ) e Microsoft Windows |
Ambiente | GNU , GNU / Linux |
genere | Linguaggio di programmazione |
Licenza | GNU LGPL |
Documentazione | www.gnu.org/software/guile/manual |
Sito web | (it) Sito ufficiale |
Guile ( GNU Ubiquitous Intelligent Language for Extensions ) è un interprete del linguaggio di programmazione Scheme sviluppato come parte del progetto GNU per fungere da linguaggio di estensione ufficiale per il sistema operativo GNU .
Nel 1994, Richard Stallman espose le sue idee per la progettazione di un linguaggio di estensione per il progetto GNU. Una delle idee principali era che gli utenti avrebbero dovuto scegliere il linguaggio di programmazione. La lingua principale considerata era una variante di Scheme, ma altre lingue potevano essere supportate tramite traduttori.
Tom Lord ha subito iniziato a lavorare al progetto. Nel 1995 sono state rese disponibili due prime versioni funzionanti. La società Cygnus Support ha aggiunto molte funzionalità e ha tolto le sue versioni Cygnus Guile r0.3 e R0.4. La prima versione ufficiale del progetto GNU è uscita nel 1997.
Il progetto è in particolare mantenuto da Andy Wingo .
Guile può essere usato come un classico interprete Scheme. Ma è stato progettato fin dall'inizio per essere integrato come linguaggio di estensione in programmi scritti in linguaggio C .
Guile supporta molte estensioni al linguaggio Scheme , oltre a vari moduli di sistema, programmazione di rete e multithreading .
Funziona sia come interprete che come compilatore di schemi per bytecode su una macchina virtuale .
Guile 2.0 compila il codice dello schema in bytecode , che viene quindi interpretato da una macchina virtuale. Ciò fornisce un notevole miglioramento delle prestazioni rispetto alle versioni precedenti di Guile.
Il codice sorgente viene compilato automaticamente per impostazione predefinita una volta trovato, senza intervento manuale. Il comando build guile-tools, tuttavia, fornisce un'interfaccia a riga di comando , oltre alle procedure Scheme per la gestione del compilatore.
Oltre a Scheme, il compilatore viene fornito con un front-end per i linguaggi ECMAScript ed Emacs Lisp .
Dalla versione 2.0 è disponibile un nuovo REPL (in) con funzionalità per semplificare questo tipo di programmazione interattiva. Il REPL è dotato anche di possibilità di debug .
Versione | Data di rilascio | Principali modifiche |
---|---|---|
2.0.3 | 22 ottobre 2011 |
|
2.0.2 | 2 luglio 2011 |
|
2.0.1 | 27 aprile 2011 |
|
2.0.0 | 16 febbraio 2011 |
Guile è il linguaggio di estensione ufficiale per il progetto GNU. Tom Tromey, manutentore del progetto GNU Debugger , ha tuttavia annunciato il suo ritiro da GDB l'8 ottobre 2010, preferendo Python come unico ed unico linguaggio di estensione.
L'utilizzo di Guile in un'app consente ai programmatori di scrivere plug-in e consente agli utenti di avere un'app che meglio si adatta alle loro esigenze.
Guile può infatti essere integrato in software di terze parti sotto forma di una libreria software la cui interfaccia fornisce le funzionalità del linguaggio Scheme e dei moduli associati. Guile viene quindi utilizzato come linguaggio di estensione in molte applicazioni, tra cui Gimp , Anubis , GnuCash , LilyPond , MDK , Robots , Serveez , TeXmacs o Scwm
Gli hacker del progetto GNU Guile hanno anche lavorato dal 2010 alla migrazione totale da GNU Emacs a Guile, Emacs Lisp ora implementato da Guile.
Guile-Ncurses è un'implementazione di Ncurses che consente la creazione di interfacce testuali in linguaggio Scheme / Guile. Conferisce all'interprete Scheme GNU Guile la capacità di interagire all'input di caratteri in modalità testo ambiente , indipendentemente dal terminale . È un pacchetto delle librerie Ncurses sottostanti. Questo progetto, la cui prima versione stabile risale al 2010, è ancora mantenuto dal nome Mike Gran, il suo creatore.
Esistono molti progetti periferici indipendenti dal Progetto GNU, ma dedicati a GNU Guile sotto forma di moduli , tra cui: