Course Outline

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

Requirements

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

  21 Hours
 

Getuigenissen (3)

Related Courses

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

  28 Hours

Advanced Java Security

  21 Hours

Combined JAVA, PHP and Web Application Security

  28 Hours

Standard Java Security

  14 Hours

Java and Web Application Security

  21 Hours

Advanced Java, JEE and Web Application Security

  28 Hours

Related Categories