Ponte en Contacto
 Duración 14 horas

Temario del curso

Introducción a Lua

  • Algo de historia
  • Objetivos, características y no objetivos de Lua
  • Recursos de documentación y tutoriales de Lua
  • Instalación del interpretador de Lua
  • Configuración y uso de LuaRocks

Sintaxis y semántica básicas

  • Identificadores
  • Comentarios, comentarios de bloque
  • Variables globales y aplicación de estrictez
  • Variables locales
  • Programas independientes, argumentos del programa
  • Unidades de compilación, bloques, expresiones, punto y coma

Tipos de datos y estructuras de datos

  • Tipos básicos: nil, boolean, number, string
  • Tipos de objeto: function, userdata, thread, table
  • Referencias/objetos frente a valores básicos
  • La importancia de las tablas en Lua

Introducción a las tablas y su versatilidad

  • Tablas como matriz asociativa
  • Tablas como matrices numéricas, secuencias

Estructuras de control básicas

  • if then elseif else end
  • Bucle while
  • Bucle repeat
  • Bucle for simple

Manejo de errores

  • Valores de retorno frente a excepciones
  • Conversión de un valor de retorno en una excepción
  • Conversión de una excepción en un valor de retorno
  • Niveles de error

Programas de ejemplo

  • Evaluación de polinomios
  • Búsqueda en anchura (BFS)
  • Ejercicios adicionales

Más sobre funciones

  • Argumentos nombrados
  • Llamadas orientadas a objetos
  • Closures (Cierres)
  • Currying
  • Llamadas de cola (Tail calls)
  • Asignación múltiple y retorno
  • Varargs

Iteradores y corutinas

  • Bucle for genérico
  • Iteradores sin estado frente a iteradores con estado
  • Diferencias entre iteradores y corutinas

Metatablas y metamétodos

  • El ejemplo de set
  • Metamétodo __tostring
  • Metamétodos aritméticos
  • Metamétodos __index, __newindex
  • Metamétodo __len

Módulos y paquetes

  • Uso de módulos
  • Creación de módulos
  • Organización de módulos en paquetes

Programación orientada a objetos

  • Componentes básicos de la POO en Lua
  • Ejemplos

Discusión sobre características avanzadas del lenguaje

  • Tablas débiles (Weak tables)
  • Finalizadores
  • Compilación, eval, carga

Requerimientos

Conocimiento de al menos otro lenguaje de programación. Experiencia en programación. Opcionalmente, la familiaridad con otros lenguajes de scripting facilitará la comprensión de Lua.

Número de participantes


Precio por participante

Próximos cursos

Categorías Relacionadas