GNU Guile


GNU Guile
GNU Guile
Guile-title.jpg
Développeur Projet GNU
Première version 1997
Dernière version 2.0.3 (22 octobre 2011) [+/-]
Version avancée [+/-]
Environnement GNU, GNU/Linux
Type Langage de programmation
Licence GNU LGPL
Site web (en) Site officiel

GNU Guile est le langage d'extension officiel du système d'exploitation GNU et la principale implémentation Scheme du projet GNU[1]. La version 2.0 reste basée sur le standard Scheme R5RS tout en implémentant partiellement le nouveau standard R6RS.

Sommaire

Historique

En 1994, Richard Stallman exposa ses idées sur la conception d'un langage d'extension pour le project GNU. Une des idées principales était que les utilisateurs devaient avoir le choix du langage de programmation. Le langage principal envisagé était une variante de Scheme, mais d'autres langages pouvaient être supportés par l'intermédiaire de traducteurs[2].

Tom Lord commença à travailler immédiatement sur le projet. En 1995, deux premières versions de travail furent mises à disposition. La société Cygnus Support ajouta de nombreuses fonctionnalités et sortit ses propres versions Cygnus Guile r0.3 et r0.4. La première version officielle du projet GNU sortit en 1997.

Caractéristiques techniques

Guile peut être utilisé comme un interpréteur Scheme classique. Mais il a été conçu dès le début pour être intégré comme langage d'extension dans les programmes écrits en langage C[3].

Guile supporte de nombreuses extensions au langage Scheme, ainsi que différents modules systèmes, la programmation réseau et le multithreading.

Il fonctionne soit comme un interpréteur, soit comme un compilateur Scheme pour bytecode sur machine virtuelle[4].

Infrastructure de compilation et Machine virtuelle

Guile 2.0 compile du code scheme en bytecode, lequel est ensuite interprété par une machine virtuelle. Cela donne une amélioration notable des performances par rapport aux anciennes versions de Guile.

Le code source est compilé automatiquement par défaut une fois trouvé, et ce sans intervention manuelle. La commande de compilation guile-tools fournit cependant une interface en ligne de commande, avec en plus des procédures Scheme pour gérer le compilateur.

Outre Scheme, le compilateur est livré avec un frontal pour les langages ECMAScript et Emacs Lisp.

REPL et Débogueur

Un nouveau REPL (en) est disponible depuis la version 2.0 avec des caractéristiques simplifiant ce type de programmation intéractive. Le REPL est par ailleurs fourni avec des possibilités de déboguage.

Historique des versions

Version Date de sortie Principaux changements
2.0.3 22 octobre 2011
  • Nouveau module (client web synchrone), optimsation avec un nouveau évaluateur partiel (en) pour programmes scheme appelé peval.
2.0.2 2 juillet 2011
  • Version de maintenance (expression `while', compilateur plus rapide, gain en performance de la machine virtuelle, etc)
2.0.1 27 avril 2011
  • Version de maintenance (REPL, unicode du standard R6RS, etc)
2.0.0 16 février 2011
  • Ajout d'un compilateur et d'une machine virtuelle.
  • Support de l'Unicode.
  • Migration vers le ramasse-miettes de Boehm-Demers-Weiser.
  • Support SXML et outils pour le traitement XML.
  • Support partiel du standard Scheme R6RS[5].
  • Module web, support URI et traitement Http.

Projet GNU

Guile est le langage d'extension officiel du projet GNU. Tom Tromey, mainteneur du projet GNU Debugger, annonce cependant son retrait de GDB le 8 octobre 2010[6], lui préférant Python comme seul et unique langage d'extension.

Utilisation dans d'autres applications

Utiliser Guile dans une application permet aux programmeurs d'écrire des plugins et aux utilisateurs d'avoir une application correspondant mieux à leurs besoins.

Guile est utilisé comme un langage d'extensions dans d'autres applications, dont Gimp, la plus populaire.

Liste

Guile et GNU Emacs

Les hackers du projet GNU Guile travaillent depuis 2010 dans la migration totale de GNU Emacs vers Scheme, le dialecte Lisp du projet GNU[7].

Projets périphériques

Il existe de nombreux projets périphériques indépendants du projet GNU, mais dédiés à GNU Guile sous la forme de modules, parmi lesquels:

  • Guile-PG[8], une collection de modules pour Guile permettant l'accès à des bases de données PostgreSQL à partir de programmes écrits en Scheme.
  • Guile-WWW[9], une collection de modules Scheme pour effectuer des requêtes URL côté client, la configuration de l'écoute des sockets INET et UNIX, l'analyse des requêtes HTTP, la recherche de contenus définis par le standard MIME, le traitement des cookies, l'empaquetage des en-têtes des réponses HTTP, l'historique côté serveur.

Notes et références

  1. GNU Guile est la principale implémentation Scheme par le projet GNU, la seconde étant MIT/GNU Scheme.
  2. Les discussions sur les défauts du langage Tcl : http://www.vanderburg.org/OldPages/Tcl/war/ et http://www.vanderburg.org/OldPages/Tcl/war2/
  3. (en) Manuel de Guile, section 2.1 http://www.gnu.org/software/guile/manual/html_node/What-is-Guile_003f.html#What-is-Guile_003f
  4. (en) Un projet de compilation à la volée est par ailleurs en cours de développement.
  5. (en) The Revised6 Report on the Algorithmic Language Scheme. Sixième révision du rapport sur le langage algorithmique Scheme
  6. (en) Support de Guile dans GDB non maintenu.
  7. (en) («guile and emacs and elisp, oh my!» le 14 avril 2010 sur emacs-devel).
  8. (en) « Guile-PG 0.42 available », Liste de diffudion guile-sources, 4 octobre 2011.
  9. (en) « Guile-WWW 2.32 available », Liste de diffudion guile-sources, 8 juillet 2011.

Voir aussi

Articles connexes

Lien externe



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article GNU Guile de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Gnu Guile — Entwickler: Free Software Foundation Aktuelle Version: 1.8.6 [1] …   Deutsch Wikipedia

  • GNU Guile — Desarrollador Proyecto GNU GNU Guile …   Wikipedia Español

  • GNU Guile — Infobox Software name = GNU Guile developer = Free Software Foundation latest release version = 1.8.5 Guile project site, [http://www.gnu.org/software/guile/ What s the latest news?] ] latest release date = Release date and age|2008|05|07… …   Wikipedia

  • GNU Guile — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • GNU Guile-Ncurses — Développeur Projet GNU Dernière version …   Wikipédia en Français

  • Guile — GNU Guile Entwickler: Free Software Foundation Aktuelle Version: 1.8.6 [1] …   Deutsch Wikipedia

  • GNU Dico — Développeur Projet GNU Dernière version …   Wikipédia en Français

  • GNU — Famille Type Unix Langue Multilingue Type de noyau Micronoyau …   Wikipédia en Français

  • GNU LilyPond — Desarrollador Graham Percival, Joe Neeman, Neil Puttock, Carl Sorensen, John Mandereau http://l …   Wikipedia Español

  • Guile — may refer to:* GNU Guile, an interpreter/virtual machine for the Scheme programming language * Guile ( Street Fighter ), a video game character from Street Fighter series * Guile (Chrono Cross), a video game character from Chrono Cross …   Wikipedia