GNU Guile

Viclenie

informație
Dezvoltat de Proiectul GNU
Prima versiune 1997
Ultima versiune 2.2.7 (7 martie 2020)
3.0.5 (7 ianuarie 2021)
Depozit git.savannah.gnu.org/cgit/guile.git
Scris in VS
Interfață Nursice
Sistem de operare GNU / Linux , BSD ( d ) și Microsoft Windows
Mediu inconjurator GNU , GNU / Linux
Tip Limbaj de programare
Licență GNU LGPL
Documentație www.gnu.org/software/guile/manual
Site-ul web (ro) Site oficial

Guile ( GNU Ubiquitous Intelligent Language for Extensions ) este un interpret al limbajului de programare Scheme dezvoltat ca parte a proiectului GNU pentru a servi ca limbaj de extensie oficial pentru sistemul de operare GNU .

Istoric

În 1994, Richard Stallman și-a expus ideile pentru proiectarea unui limbaj de extensie pentru proiectul GNU. Una dintre ideile principale a fost că utilizatorii ar trebui să aibă posibilitatea de a alege limbajul de programare. Limba principală luată în considerare a fost o variantă a Schemei, dar alte limbi ar putea fi sprijinite prin intermediul traducătorilor.

Tom Lord a început imediat să lucreze la proiect. În 1995, au fost puse la dispoziție două prime versiuni de lucru. Compania Cygnus Support a adăugat multe funcții și a scos propriile sale versiuni Cygnus Guile r0.3 și R0.4. Prima versiune oficială a proiectului GNU a apărut în 1997.

Proiectul este întreținut în special de Andy Wingo .

Caracteristici tehnice

Guile poate fi folosit ca un interpret de schemă clasic. Dar a fost proiectat de la început să fie integrat ca o limbă extensie în programe scrise în limbajul C .

Guile acceptă multe extensii la limbajul Scheme , precum și diverse module de sistem, programare de rețea și multi-threading .

Funcționează fie ca interpret, fie ca un compilator Scheme pentru bytecode pe o mașină virtuală .

Infrastructură de compilare și mașină virtuală

Guile 2.0 compilează codul schemei în bytecode , care este apoi interpretat de o mașină virtuală. Acest lucru oferă o îmbunătățire vizibilă a performanței față de versiunile mai vechi ale Guile.

Codul sursă este compilat automat în mod implicit odată găsit, fără intervenție manuală. Comanda de construire a instrumentelor de înșelăciune oferă totuși o interfață de linie de comandă , plus proceduri de schemă pentru gestionarea compilatorului.

În afară de Scheme, compilatorul vine cu un front end pentru limbile ECMAScript și Emacs Lisp .

REPL și Debugger

Un nou REPL  (in) este disponibil de la versiunea 2.0 cu caracteristici care simplifică acest tip de programare interactivă. REPL este, de asemenea, prevăzut cu posibilități de depanare .

Versiunea istorică

Versiune Data de lansare Principalele modificări
2.0.3 22 octombrie 2011
  • Modul nou ( client web sincron), optimizare cu un nou evaluator parțial  (en) pentru programe de schemă numite peval .
2.0.2 2 iulie 2011
  • Versiune de întreținere (expresie „while”, compilator mai rapid, câștig de performanță pentru mașina virtuală etc.)
2.0.1 27 aprilie 2011
  • Versiune de întreținere (REPL, unicode al standardului R6RS etc.)
2.0.0 16 februarie 2011
  • Adăugarea unui compilator și a unei mașini virtuale.
  • Suport pentru Unicode .
  • Migrația către firimitul lui Boehm-Demers-Weiser .
  • Suport SXML și instrumente pentru procesarea XML .
  • Suport parțial al standardului Scheme R6RS .
  • Modul web , suport URI și procesare Http .

Proiectul GNU

Guile este limbajul oficial de extensie pentru proiectul GNU. Tom Tromey, menținător al proiectului GNU Debugger , a anunțat însă retragerea sa din GDB pe 8 octombrie 2010, preferând Python ca singurul limbaj de extensie.

Scenarii de utilizare

Folosirea Guile într-o aplicație permite programatorilor să scrie pluginuri și permite utilizatorilor să aibă o aplicație care se potrivește mai bine nevoilor lor.

Guile poate fi de fapt integrat în software-ul terților sub forma unei biblioteci software a cărei interfață le oferă funcționalitățile limbajului Scheme și ale modulelor asociate. Guile este astfel folosit ca limbaj de extensie în multe aplicații, inclusiv Gimp , Anubis , GnuCash , LilyPond , MDK , Robots , Serveez , TeXmacs sau Scwm

Hackerii din proiectul GNU Guile lucrează și din 2010 la migrația totală de la GNU Emacs la Guile, Emacs Lisp fiind acum implementat de Guile.

Bibliografie

Complimente

GNU Guile-Ncurses

Guile-Ncurses este o implementare Ncurses care permite crearea de interfețe textuale în limbaj Scheme / Guile. Acesta conferă interpretului Schema GNU Guile capacitatea de a interacționa la introducerea de caractere în modul text de mediu , indiferent de terminal . Este un pachet al bibliotecilor Ncurses subiacente. Acest proiect, a cărui primă versiune stabilă datează din 2010, este încă întreținut de așa-numitul Mike Gran, creatorul său.

Alte proiecte conexe

Există multe proiecte periferice independente de proiectul GNU, dar dedicate GNU Guile sub formă de module , printre care:

Note și referințe

Referințe

  1. (în) Ludovic Courtes ( d ) , „  GNU Guile 2.2.7 lansat  ” ,7 martie 2020(accesat la 8 ianuarie 2021 )
  2. (în) Andy Wingo, „  GNU Guile 3.0.5 lansat  ” ,7 ianuarie 2021(accesat la 8 ianuarie 2021 )
  3. Discuții despre defectele limbajului Tcl: http://www.vanderburg.org/OldPages/Tcl/war/ și http://www.vanderburg.org/OldPages/Tcl/war2/
  4. (în) „  întreținător personal al site-ului  ” pe wingolog.org ,12 septembrie 2010(accesat la 11 septembrie 2012 )
  5. (în) Manual Guile, Secțiunea 2.1 http://www.gnu.org/software/guile/manual/html_node/What-is-Guile_003f.html#What-is-Guile_003f
  6. (în) Se dezvoltă, de asemenea, un proiect de compilare din mers .
  7. (în) Raportul revizuit6 privind schema de limbaj algoritmic . A șasea revizuire a raportului schemei de limbaj algoritmic
  8. (ro) Suport în Guile nu este menținut GDB .
  9. (în) „  GNU Guile-Ncurses  ” pe directory.fsf.org , FSF ,27 octombrie 2014
  10. (în) GNU guile-ncurses 1.0 realizat la 4 octombrie 2010.
  11. (in) nongnu.org, Guile-PG  " (accesat la 11 februarie 2012 )
  12. (ro) Thien-Thi Nguyen, Guile-PG 0,43 disponibil , surse de înșelătorie,6 februarie 2012( citește online ).
  13. (ro) Thien-Thi Nguyen, Guile-WWW 2.35 disponibil , surse de ghilie,6 noiembrie 2012( citește online )..
  14. (în) „G-Wrap” , nongnu.org , 16 decembrie 2011.
  15. (în) „Guile-0.4.1 SDL available” , listă difuzie-surse guile , 16 noiembrie 2012.
  16. (în) „Mixp” , nongnu.org , 22 august 2011.
  17. (în) „Mixp 0.6 disponibil” , lists.gnu.org , 25 ianuarie 2012.

Note

  1. Versiunea 2.0 rămâne bazată pe standardul Scheme R5RS, în timp ce implementează parțial noul standard R6RS . Guile este principala implementare a schemei a proiectului GNU, al doilea fiind schema MIT / GNU .

linkuri externe