Cursusaanbod

Inleiding tot Lua

  • Een beetje geschiedenis
  • De doelen, kenmerken en niet-doelen van Lua.
  • Bronnen van Lua documentatie en tutorials
  • De Lua-interpreter installeren
  • LuaRocks instellen en gebruiken

Basissyntaxis en semantiek

  • Identificatiegegevens
  • Reacties, blokkeer reacties
  • Globale variabelen en het afdwingen van striktheid
  • Lokale variabelen
  • Op zichzelf staande programma's, programmaargumenten
  • Compilatie-eenheden, chunks, expressies, puntkomma's

Datatypen en datastructuren

  • Basistypen: nul, boolean, getal, string
  • Objecttypen: functie, gebruikersgegevens, thread, tabel
  • Referenties/objecten versus basiswaarden
  • Het belang van tabellen in Lua

Inleiding tot tafels en hun veelzijdigheid

  • Tabellen als associatieve array
  • Tabellen als numerieke arrays, reeksen

Basiscontrolestructuren

  • Het als dan elseif else eindigt
  • De while-lus
  • De herhalingslus
  • De eenvoudige for-lus

Foutafhandeling

  • Retourwaarden versus uitzonderingen
  • Een retourwaarde converteren naar een uitzondering
  • Een uitzondering converteren naar een retourwaarde
  • Foutniveaus

Voorbeeldprogramma's

  • Polynomiale evaluatie
  • Breedte eerste zoekopdracht
  • Aanvullende oefeningen

Meer over functies

  • Benoemde argumenten
  • Objectgeoriënteerde oproepen
  • Sluitingen
  • Curry
  • Staart roept
  • Meerdere opdracht en retour
  • Varargs

Iterators en co-routines

  • De generieke for-lus
  • Staatloze versus stateful iteratoren
  • Verschillen tussen iteratoren en co-routines

Metatabellen en metamethoden

  • Het gestelde voorbeeld
  • De __tostring-metamethode
  • Rekenkundige metamethoden
  • De __index, __newindex metamethoden
  • De __len-metamethode

Modules en pakketten

  • Modules gebruiken
  • Modules maken
  • Modules in pakketten organiseren

Geavanceerde tabellen

  • Tabellen voor wachtrijen en stapels
  • Tabellen die grafieken beschrijven
  • Matrices als tabellen
  • Gekoppelde lijsten als tabellen
  • Stringbuffers

Metatabellen via voorbeelden

  • Volmachten
  • Alleen lezen
  • Memoriseren
  • Dynamisch programmeren met memoisatie
  • Het Fibonacci-voorbeeld

Omgevingen

  • Relatie tussen globale variabelen en omgevingen
  • Gratis variabelen
  • De _ENV-tabel en de _G-tabel

Meer over modules

  • Verschillende benaderingen voor het maken van modules
  • Modules die het gedrag veranderen
  • Module-initialisatie en argumenten
  • Omgevingen gebruiken om veilige modules te implementeren

Geavanceerde iterators en co-routines

  • Producent, consument, filter
  • Co-routines inpakken om iteratoren te krijgen
  • Staatloze iterator voor gekoppelde lijsten

Bijdragen aan het ecosysteem

  • Pakketten uploaden naar MoonRocks

Functioneel paradigma in Lua

  • De kaartfunctie
  • De verklein-/vouwfunctie

Objectgeoriënteerd Programming

  • Verschillende benaderingen van OOP
  • Verschillende benaderingen van overerving
  • Voorbeelden

Een walkthrough van de Lua standaardbibliotheken

Compilatie

  • Compilatie
  • Eval
  • Relatie met de omgeving
  • Binaire stukjes

Afvalinzameling

  • Zwakke tafels
  • Finalizers, de __gc-metamethode

Lua bytecode en virtuele machine

  • Het genereren van bytecode uit de broncode
  • Bytecode lezen en analyseren
  • Korte rondleiding door de broncode van de Lua VM

C-modules

  • Bellen C vanaf Lua
  • Search pad en laden van C-modules

Bellen naar Lua vanuit C

  • De stapel
  • Foutafhandeling
  • Vervolg

Omgaan met Lua-waarden en typen uit C

  • Arrays
  • Snaren
  • Gebruikersgegevens
  • Metatabellen
  • Objectgeoriënteerde oproepen
  • Lichte gebruikersgegevens

Geheugen management

  • Allocators
  • GC-API

Onderwerpen in Lua

  • Co-routines versus threads
  • Echte multi-threading en Lua-statussen

Vereisten

Kennis van minimaal één andere programmeertaal. Programming ervaring. Als u bekend bent met andere scripttalen, wordt het optioneel gemakkelijker om Lua te begrijpen.

 21 Uren

Aantal deelnemers


Prijs Per Deelnemer

Testimonials (1)

Voorlopige Aankomende Cursussen

Gerelateerde categorieën