Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.        
        
        
            Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.        
    Temario del curso
Introducción a Lua
- Un poco de historia
 - Objetivos, características y no objetivos de Lua
 - Recursos de Lua documentación y tutoriales
 - Instalación del intérprete Lua
 - Configuración y uso de LuaRocks
 
Sintaxis y semántica básicas
- Identificadores
 - Comentarios, bloquear comentarios
 - Variables globales y aplicación de la rigurosidad
 - Variables locales
 - Programas independientes, argumentos de programa
 - Unidades de compilación, fragmentos, expresiones, punto y coma
 
Tipos de datos y estructuras de datos
- Tipos básicos: nil, booleano, número, cadena
 - Tipos de objetos: función, datos de usuario, subproceso, tabla
 - Referencias/objetos frente a valores básicos
 - La importancia de las tablas en Lua
 
Introducción a las mesas y su versatilidad
- Tablas como matriz asociativa
 - Tablas como matrices numéricas, secuencias
 
Estructuras básicas de control
- El fin de if then elseif else
 - El bucle while
 - El bucle de repetición
 - El bucle for simple
 
Manejo de errores
- Valores devueltos frente a excepciones
 - Convertir un valor devuelto en una excepción
 - Convertir una excepción en un valor devuelto
 - Niveles de error
 
Ejemplos de programas
- Evaluación polinómica
 - Amplitud primera búsqueda
 - Ejercicios adicionales
 
Más información sobre las funciones
- Argumentos con nombre
 - Llamadas orientadas a objetos
 - Cierres
 - Currying
 - Llamadas de cola
 - Asignación y devolución múltiple
 - Varargs
 
Iteradores y corrutinas
- El bucle for genérico
 - Iteradores sin estado frente a iteradores con estado
 - Diferencias entre iteradores y corrutinas
 
Metatablas y metamétodos
- El ejemplo establecido
 - El metamétodo __tostring
 - Metamétodos aritméticos
 - Los metamétodos __index __newindex
 - El metamétodo __len
 
Módulos y paquetes
- Uso de módulos
 - Creación de módulos
 - Organización de módulos en paquetes
 
Tablas avanzadas
- Tablas para colas y pilas
 - Tablas que describen gráficos
 - Matrices como tablas
 - Listas enlazadas como tablas
 - Búferes de cadena
 
Metatables a través de ejemplos
- Proxies
 - Solo lectura
 - Memorización
 - Programación dinámica con memorización
 - El ejemplo de Fibonacci
 
Entornos
- Relación entre variables globales y entornos
 - Variables libres
 - La tabla _ENV y la tabla _G
 
Más información sobre los módulos
- Diferentes enfoques para la creación de módulos
 - Módulos que cambian el comportamiento
 - Inicialización y argumentos del módulo
 - Uso de entornos para implementar módulos seguros
 
Iteradores avanzados y corrutinas
- Productor, consumidor, filtro
 - Empaquetado de corrutinas para obtener iteradores
 - Iterador sin estado para listas vinculadas
 
Contribuyendo al ecosistema
- Subir paquetes a MoonRocks
 
Paradigma funcional en Lua
- La función de mapa
 - La función de reducir/plegar
 
Orientado a objetos Programming
- Diferentes enfoques de la POO
 - Diferentes enfoques de la herencia
 - Ejemplos
 
Un tutorial de las Lua bibliotecas estándar
Compilación
- Compilación
 - Eval
 - Relación con el medio ambiente
 - Fragmentos binarios
 
Recolección
- Tablas débiles
 - Finalizadores, el metamétodo __gc
 
Lua Código de bytes y máquina virtual
- Generación de código de bytes a partir del código fuente
 - Lectura y análisis de código de bytes
 - Recorrido rápido por el código fuente de la máquina virtual Lua
 
Módulos C
- Llamar a C desde Lua
 - Search ruta y carga de los módulos C
 
Llamar a Lua desde C
- La pila
 - Manejo de errores
 - Continuaciones
 
Manejo de valores y tipos Lua de C
- Matrices
 - Instrumentos de cuerda
 - Datos de usuario
 - Metatablas
 - Llamadas orientadas a objetos
 - Datos de usuario ligeros
 
Gestión de la memoria
- El 25 día-a
 - GC API
 
Hilos en Lua
- Corrutinas frente a subprocesos
 - Multi-threading real y estados Lua
 
Requerimientos
Familiaridad con al menos otro lenguaje de programación. Programming experiencia. Opcionalmente, si está familiarizado con otros lenguajes de scripting, eso facilitará la comprensión de Lua.
             21 Horas