Le guide de Lua et ses applications

Lexique

A

Add-on

Greffon, Extension

Du code extérieur à l'application principale, sous forme de binaire compilé ou de code source (script), qui étend les fonctionnalités de l'application. (Vous pouvez également rencontrer dans le même sens le terme de plug-in.)

API

API

Application Programming Interface, interface de programmation pour applications, offrant des fonctionnalités aux applications via un ensemble de fonctions, objets, etc.

Array

Tableau

Organisation séquentielle de données, indexées (référencées) par un nombre, correspondant à l'ordre de stockage.

Associative array

Tableau associatif, table d'association

Table utilisée avec des clés qui ne sont pas de simples indices entiers, mais par exemple des chaînes de caractères.

Voir aussi Table .

B

Binding

Liaison

Bibliothèque logicielle qui permet d'appeler des fonctions d'un langage dans un autre langage. En Lua, il s'agit de fonctions écrites en C ou C++ mises à disposition au niveau de Lua.

Voir aussi Wrapper .

Bit

Bit

Unité élémentaire (atomique) d'information, 0 ou 1.

Block

Bloc

Portion de code délimitée, en Lua, par un mot clé de début (do, then, repeat) et un mot clé de fin (end ou until uniquement pour repeat). Les blocs peuvent être imbriqués. Un bloc délimite la portée des variables locales : elles ne sont plus disponibles après le mot end correspondant à leur niveau.

Boolean

Booléen

Les booléens, nommés en référence à la logique de Boole (mathématicien britannique du XIXe siècle) sont des valeurs logiques binaires correspondant à vrai ou faux.

Buffer

(Mémoire) Tampon

Zone de mémoire où l'on stocke des données. Souvent utilisée pour la communication entre processus, où l'un remplit le tampon pendant que l'autre le vide, généralement à une vitesse différente.

Byte

Octet

Huit bits. Correspond à la plus petite taille d'information adressable directement dans les processeurs modernes.

Bytecode

Code à octets

Ensemble d'octets représentant un programme exécutable converti du format textuel (code source) à un format simple à interpréter par le moteur du langage.

C

Callback

Fonction de rappel

Une fonction destinée à être appelée automatiquement par une librairie, en général pour signaler un évènement (données reçues, action utilisateur...) et le traiter.

Character

Caractère

Un caractère correspond à une lettre (majuscule ou minuscule), un chiffre, un symbole (ponctuation), etc.

Capture

Capture

Une sous-chaîne de la chaîne cible, correspondant à une partie d'un motif délimitée par des parenthèses.

Character class

Classe de caractères, jeu de caractères

Dans un motif, ensemble de caractères (alphabétiques, numériques, etc.), présentés entre crochets, coïncidant avec n'importe quel caractère cible faisant partie de cet ensemble.

Voir aussi Set .

Chunk

Morceau

Série d'instructions sans délimitation formelle, par exemple le code dans un fichier ou dans une chaîne de caractères.

Closure

Fermeture

Fonction qui a "capturé" des variables dans son espace de visibilité. Ce qui signifie qu'elle utilise ces variables et garde leur référence même si le bloc les définissant a fini son cycle de vie.

D

Database

Base de données

(Abrégé en DB ou BdD pour les francophones) Manière de stocker de façon persistante des données (souvent groupées et indexées par un nombre ou une valeur) pour pouvoir les récupérer rapidement selon certains critères.

Decrement

Décrémenter

Diminuer une variable numérique d'une certaine valeur (généralement 1, quand ce n'est pas spécifié).

Voir aussi Increment .

Deserialization

Désérialisation

Action de retransformer des données sérialisées en leur représentation d'origine pour être utilisables par le programme cible.

Voir aussi Serialization .

Directory

Répertoire, Dossier

Un ensemble de fichiers et de répertoires. Comme les fichiers, un répertoire a un nom qui permet d'y accéder grâce au système d'exploitation . Généralement, les répertoires sont organisés sous forme d'arbre hiérarchique. (Vous pouvez également rencontrer dans le même sens le terme de folder.)

E

Endianness (big endian, little endian)

Endianisme, Boutisme (gros-boutiste, petit-boutiste)

L'endianness définit l'orientation dans laquelle sont placés les octets pour définir un nombre dont la représentation nécessite plusieurs octets. On distingue deux orientations : little endian et big endian. En Big Endian, l'octet de poids fort est placé en premier, c'est le contraire en little endian. Ainsi, prenons la valeur hexadécimale 0x88776655. ELle sera stockée sous la forme 0x88 0x77 0x66 0x55 en big endian et 0x55 0x66 0x77 0x88 en little endian. Héritée des débuts de l'informatique, cette divergence d'ordonancement des octets et toujours présente dans nos systèmes et continuent de polluer la vie des développeurs.

Environment

Environnement

En Lua, contexte d'exécution définissant quelles sont les variables globales accessibles. Il s'agit d'une table nommée _ENV dans laquelle les variables globales sont stockées. Chaque fonction peut se voir attribuer un environnement différent.

F

File

Fichier

Unité de stockage d'information sur mémoire permanente (disque dur, Flash, etc.). Chaque fichier a un nom qui permet d'y accéder de manière aisée au travers du système d'exploitation.

Folder

Voir %t.Directory .

Function

Fonction

Portion de code effectuant une tâche de façon relativement indépendante du reste du programme. Une fonction peut recevoir des valeurs à traiter via des paramètres, et peut retourner une (ou plusieurs) valeurs résultat.

G

Garbage collector

Ramasse-miettes

La mémoire de certains langages, dont Lua, est gérée par le moteur du langage (machine virtuelle). Si une zone mémoire n'a plus de référence (n'est plus utilisée par aucune variable), le ramasse-miettes la récupérera pour la recycler, c'est-à-dire l'affecter à nouveau quand de la nouvelle mémoire est requise.

GUI

IHM

GUI est un acronyme courant pour Graphical User Interface, soit interface utilisateur graphique, plus couramment abrégé en IHM, soit Interface Homme-Machine. C'est ce que vous voyez sur votre écran : des boutons, des listes, des zones de texte, etc., organisé en fenêtres que votre système permet de gérer. Cela permet d'afficher des informations à l'utilisateur et d'avoir son entrée, généralement sous forme de clics de souris ou de frappe au clavier.

H

Hashtable

Table de hachage

Structure de données permettant d'associer à une donnée de clé une donnée de valeur. Dans cette structure, la clé est passée dans un algorithme de hachage qui doit en calculer un nombre entier déterministe mais ayant une distribution statistique aléatoire, qui permet d'accéder à la valeur dans un temps constant O(1).

Hook

Fonction hameçon ou d'hameçonnage

Une fonction hameçon (dite fonction hook en anglais) est une fonction permettant de s'insérer au sein d'un appel afin d'effectuer des actions complémentaires, souvent pour des activités de débogage. On parle aussi de fonction crochet.

I

Increment

Incrémenter

Augmenter une variable numérique d'une certaine valeur (généralement 1, quand ce n'est pas spécifié).

Voir aussi Decrement .

Iteration

Itération, Boucle

Le fait d'exécuter une portion de code (dans un block) de façon répétée, avec une boucle de code.

Iterate

Itérer, Boucler

Dérouler, exécuter une itération (le corps de la boucle) ou une série d'itérations.

Iterator

Itérateur, Boucleur

Une méthode encapsulant une partie de la logique d'une itération, qui implique souvent de mettre à jour une variable (par exemple incrémenter un nombre) et de vérifier une condition (par exemple de voir si la variable à atteint une limite).

En Lua, fonction qui retourne un élément à chaque fois qu'elle est appelée, puis nil quand tous les éléments ont été lus. Un itérateur est particulièrement utilisé dans une boucle for, car cette structure de contrôle appelle automatiquement la fonction à chaque itération.

J

Just-In-Time compiler

Compilateur juste-à-temps, compilateur à la volée

Un compilateur à la volée permet de traduire en langage machine du langage interprété ou précompilé sous forme de bytecode. L'utilisation de ce type de technique permet de réaliser des optimisations tout en restant portable.

L

Library

Bibliothèque, Librairie

Un ensemble de fonctionnalités exposées via une API.

Loop

Boucle

Une méthode d'itération et le bloc sur lequel il itère.

Voir aussi Iteration .

M

Metamethod

Métaméthode

Les métaméthodes Lua sont des fonctions prédéfinies dont le contenu par défaut peut être changé par l'utilisateur. Cette technique permet de raffiner des appels en fonction du type de données.

Metatable

Métatable

Il s'agit d'une table associée à une autre table ou une autre valeur permettant de modifier son comportement, par exemple de définir une opération d'addition entre deux objets.

Match

Faire coïncider

S'applique à des motifs : on applique un motif à une chaîne de caractères pour faire coïncider les expressions régulières avec des sous-chaînes.

P

Parsing

Analyse syntaxique.

Décomposition d'une chaîne de caractères (par exemple un code source) en unités élémentaires (tokens, soit jetons) syntaxiques, comme des mots clés, des opérateurs, des valeurs littérales, etc.

Pattern

Motif

Chaîne de caractères servant de modèle pour vérifier qu'une chaîne donnée revêt une certaine forme. Peut aussi servir à capturer des parties de cette chaîne. En Lua, les motifs standards sont plus limités que les expressions régulières classiques.

Plug-in

Voir %t.Add-on .

S

Sandbox

Environnement sécurisé

Environnement d'exécution d'un programme qui empêche certaines fonctionnalités d'un langage ou de ses librairies (comme accéder aux fichiers de l'utilisateur) pour des raisons de sécurité.

Serialization

Sérialisation

Action de transformer des données en mémoire (tables, par exemple) en données suivant un format précis (syntaxe Lua, XML, binaire...) permettant soit la sauvegarde sur disque, soit la transmission sur un réseau, ou d'autres usages comme l'enregistrement dans une base de données.

Voir aussi Deserialization .

Scope

Portée

Une variable n'est généralement pas visible de l'ensemble des fonctions d'un programme, ce qui signifie qu'une fonction donnée ne peut accéder (utiliser) qu'à un petit nombre de variables du programme. Les règles de visibilité dépendent du langage et peuvent être complexes. (Vous pouvez également rencontrer dans le même sens le terme de visibility.)

Set

Ensemble

Un groupe d'entités. Par exemple, on utilise des ensembles de caractères dans les motifs pour signifier qu'on cherche un de ces caractères.

Voir aussi Character class .

Socket

Connecteur réseau

Dans le protocole TCP/IP utilisé sur Internet, un socket est une connexion ouverte entre un ordinateur client et un serveur.

String

Chaîne de caractères

Une suite de caractères, généralement stockée de façon continue dans une table.

T

Table

Table, Tableau associatif, Dictionnaire

Un tableau associatif associe une valeur (souvent une chaîne de caractères mais pas seulement) appelée clé, à une donnée (quelconque), appelée valeur. Cela permet d'indexer les valeurs par leur clé, par exemple de trouver la valeur d'une couleur en fonction de son nom. Le terme dictionnaire est assez évocateur : avec un mot, on peut trouver une définition.

V

Variable

Variable

Une variable associe un symbole (le nom de la variable dans un code source) à une valeur. Comme le nom l'implique, la valeur peut généralement changer, mais par extension on peut utiliser le terme pour une constante.

Virtual machine

Machine virtuelle

Un langage peut être traduit en code natif (assembleur) ou en code à octets. Dans ce dernier cas, un interpréteur exécute ce code, le traduisant par des actions en code natif. L'ensemble de cet interpréteur, du gestionnaire de mémoire, de l'exécuteur forme une machine virtuelle, une sorte de microprocesseur non physique.

Visibility

Voir %t.Scope .

W

Wrapper

Emballage

Une couche logicielle (écrite en C dans le cas de Lua) adaptant au langage de destination une librairie non dédiée. Dans le cas de Lua, on met à disposition des fonctions respectant, généralement, l'esprit de Lua. Par exemple, la librairie io emballe l'API C de bas niveau pour manipuler des fichiers et expose les fonctions que l'on connaît.

Voir aussi Binding .