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
 

Nombre de participants


Début

Fin


Dates are subject to availability and take place between 09:30 and 16:30.

Prix par participant

Nos Clients témoignent (4)

Cours Similaires

Combined C/C++, JAVA and Web Application Security

  28 heures

Advanced Java Security

  21 heures

Combined JAVA, PHP and Web Application Security

  28 heures

Standard Java Security

  14 heures

Java and Web Application Security

  21 heures

Advanced Java, JEE and Web Application Security

  28 heures

Catégories Similaires