GNU Smalltalk

* * *

Développeur  | Projet GNU
Dernière version | 3.2.5 (11 avril 2013)
Version en développement | Git et CVS
Influencé par  | Lisp
A influencé  | Ruby
Écrit en | Smalltalk
Système d'exploitation | Multiplate-forme
Licence | GNU GPL et GNU LGPL
Site web | smalltalk.gnu.org
modifier

GNU Smalltalk est une implémentation libre de Smalltalk, un langage de programmation orientée objet. GNU Smalltalk fait partie du projet GNU.

Il est multiplate-forme.

## Présentation[modifier | modifier le code]

GNU Smalltalk implémente le langage Smalltalk-80.

Il peut être utilisé comme langage de script. Il est accédé via un interpréteur en ligne de commande. La machine virtuelle est équipée d'un ramasse-miettes qui gère automatiquement la mémoire.

GNU Smalltalk donne accès à plusieurs bibliothèques logicielles libres :

* SQLite pour les bases de données
* SDL pour le son et la vidéo
* Cairo pour les graphismes
* GNU gettext pour l'internationalisation
* Seaside, un framework web[1].

Il fournit un outil capable de générer automatiquement de la documentation à partir du code source. Un mode Emacs permet d'obtenir des fonctionnalités spécifiques, par exemple la coloration syntaxique, diverses aides à l'édition, et un accès à la machine virtuelle[2]. Le framework de test SUnit s'intègre à GNU Smalltalk, il permet au développeur de faire des tests unitaires.

GNU Smalltalk est un logiciel libre. La machine virtuelle est diffusée selon les termes de la licence GNU GPL. La bibliothèque de classes est diffusée selon les termes de la licence GNU LGPL.

## Bibliothèque de classes[modifier | modifier le code]

La bibliothèque fournit des classes de base[3]. Par exemple :

* structures de données
* arithmétique : nombre entier, nombre flottant, fraction, etc.
* accès au système de fichiers
* expression rationnelle
* système de gestion d'exceptions
* interface avec le langage C
* espace de noms
* processus

Elle fournit également d'autres classes. Par exemple :

* Blox : interface graphique reposant sur Tk[4].
* nombre complexe
* accès aux bases de données
* accès réseau
* internationalisation
* XML
* compression

## Exemples[modifier | modifier le code]

L'interpréteur en ligne de commande attend un point d'exclamation pour évaluer l'entrée. L'exemple typique hello world :

'Hello world!' displayNl

L'évaluation de cette ligne envoie le message displayNL à l'objet Hello world de la classe String.

D'autres exemples de base :

-5 abs        "5"
5 + 2 * 0     "0"
'Vif juge, trempez ce blond whisky aqueux' asLowercase asSet asSortedCollection asString   "' ,abcdefghijklmnopqrstuvwxyz'"

## Notes et références[modifier | modifier le code]

1. ↑ (en) Depuis le 7 mars 2008. Extrait de la FAQ
2. ↑ (en) Page de manuel sur le mode Emacs
3. ↑ (en) Documentation de la bibliothèque de classes
4. ↑ (en) Page de manuel sur Blox

## Voir aussi[modifier | modifier le code]

### Articles connexes[modifier | modifier le code]

* Smalltalk, le langage
* Squeak, une autre implémentation libre de Smalltalk

### Liens externes[modifier | modifier le code]

* (en) Site officiel
* (fr) Site du projet GNU

v · m

Projet GNU

Histoire |

* Manifeste GNU
* Free Software Foundation (FSF)
* Histoire du logiciel libre

Licences |

* GNU General Public License (GPL)
* GNU Lesser General Public License (LGPL)
* GNU Affero General Public License (AGPL)
* GNU Free Documentation License (GFDL)

Logiciels |

* Système d'exploitation GNU
* Bash
* GCC
* GDB
* Emacs
* Glibc
* Guile
* Guix
* Coreutils
* Savannah
* GNUnet
* Autotools
* Liste des paquets GNU

Personnalités |

* Ludovic Courtès (auteur de GNU Guix)
* Werner Koch
* Christian Grothoff (auteur de GNUnet)
* Simon Josefsson
* Matt Lee
* Stefan Monnier
* Alexandre Oliva
* Thomas Schwinge
* Richard Stallman
* John Gilmore
* Mark H. Weaver
* Andy Wingo

* Portail des logiciels libres
* Portail de la programmation informatique

*[(en)]: Langue : anglais
*[(fr)]: Langue : français
*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.