Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
Introduction à Lua
- Un peu d'histoire
- Les objectifs, les fonctionnalités et les non-objectifs de Lua
- Ressources de la documentation et des tutoriels de Lua
- Installation de l'interpréteur Lua
- Mise en place et utilisation de LuaRocks
Syntaxe et sémantique de base
- Identificateurs
- Commentaires, commentaires de blocs
- Variables globales et application de la rigueur
- Variables locales
- Programmes autonomes, arguments de programme
- Unités de compilation, blocs, expressions, points-virgules
Types de données et structures de données
- Types de base : nil, booléen, nombre, chaîne de caractères
- Types d'objets : fonction, données utilisateur, thread, tableau
- Références/objets et valeurs de base
- L'importance des tableaux dans Lua
Introduction aux tableaux et à leur polyvalence
- Les tableaux en tant que tableaux associatifs
- Tableaux en tant que tableaux numériques, séquences
Structures de contrôle de base
- La boucle if then elseif else end
- La boucle while
- La boucle repeat
- La boucle for simple
Gestion des erreurs
- Valeurs de retour et exceptions
- Conversion d'une valeur de retour en exception
- Conversion d'une exception en valeur de retour
- Niveaux d'erreur
Exemples de programmes
- Évaluation polynomiale
- Recherche en largeur
- Exercices supplémentaires
En savoir plus sur les fonctions
- Arguments nommés
- Appels orientés objet
- Fermetures
- Curry
- Appels de queue
- Affectation et retour multiples
- Varargs
Itérateurs et co-routines
- La boucle for générique
- Itérateurs avec ou sans état
- Différences entre itérateurs et co-routines
Métaboles et métaméthodes
- L'exemple du set
- La métaméthode __tostring
- Les métaméthodes arithmétiques
- Les métaméthodes __index, __newindex
- La métaméthode __len
Modules et paquets
- Utilisation des modules
- Création de modules
- Organisation des modules en paquets
Tables avancées
- Tableaux pour les files d'attente et les piles
- Tableaux décrivant des graphiques
- Matrices sous forme de tableaux
- Listes chaînées en tant que tableaux
- Tampons pour chaînes de caractères
Exemples de métatables
- Proxies
- Lecture seule
- Mémorisation
- Programmation dynamique avec mémorisation
- L'exemple de Fibonacci
Environnements
- Relation entre les variables globales et les environnements
- Les variables libres
- La table _ENV et la table _G
En savoir plus sur les modules
- Différentes approches pour créer des modules
- Modules qui modifient le comportement
- Initialisation des modules et arguments
- Utilisation d'environnements pour mettre en œuvre des modules sûrs
Itérateurs avancés et co-routines
- Producteur, consommateur, filtre
- Envelopper les co-routines pour obtenir des itérateurs
- Itérateur sans état pour les listes chaînées
Contribuer à l'écosystème
- Télécharger des paquets sur MoonRocks
Paradigme fonctionnel en Lua
- La fonction map
- La fonction reduce / fold
Orienté objet Programming
- Les différentes approches de la POO
- Différentes approches de l'héritage
- Exemples d'application
Un tour d'horizon des Lua bibliothèques standard
Compilation
- Compilation
- Évaluation
- Relation avec l'environnement
- Morceaux binaires
Collecte des ordures
- Tableaux faibles
- Finaliseurs, la méta-méthode __gc
Lua bytecode et machine virtuelle
- Générer du bytecode à partir du code source
- Lecture et analyse du bytecode
- Visite rapide du code source de la Lua VM
Modules C
- Appel du C à partir du Lua
- Chemin d'accès Search et chargement des modules C
Appel de Lua à partir de C
- La pile
- Gestion des erreurs
- Continuations
Gestion des valeurs et des types Lua en C
- Tableaux
- Chaînes de caractères
- Données utilisateur
- Méta-tables
- Appels orientés objet
- Données utilisateur légères
Gestion de la mémoire
- Allocateurs
- API GC
Les threads dans Lua
- Co-routines et threads
- Multithreading réel et états Lua
Pré requis
Familiarité avec au moins un autre langage de programmation. Programming expérience. Si vous êtes familier avec d'autres langages de script, cela facilitera la compréhension de Lua.
21 Heures
Nos clients témoignent (1)
La clarté des informations. Malgré un programme très compact car très court (2 jours), nous sommes allés des bases jusqu'aux notions les plus poussées du Lua de manière simple.