Schulungsübersicht

Einführung in Lua

  • Ein bisschen Geschichte
  • Luas Ziele, Funktionen und Nichtziele
  • Ressourcen von Lua Dokumentation und Tutorials
  • Installieren des Lua-Interpreters
  • Einrichten und Verwenden von LuaRocks

Grundlegende Syntax und Semantik

  • Identifikatoren
  • Kommentare, Kommentare blockieren
  • Globale Variablen und Durchsetzung von Strenge
  • Lokale Variablen
  • Eigenständige Programme, Programmargumente
  • Kompilierungseinheiten, Chunks, Ausdrücke, Semikolons

Datentypen und Datenstrukturen

  • Grundtypen: Null, Boolescher Wert, Zahl, Zeichenfolge
  • Objekttypen: Funktion, Benutzerdaten, Thread, Tabelle
  • Referenzen/Objekte vs. Grundwerte
  • Die Bedeutung von Tabellen in Lua

Einführung in Tabellen und ihre Vielseitigkeit

  • Tabellen als assoziatives Array
  • Tabellen als numerische Arrays, Sequenzen

Grundlegende Kontrollstrukturen

  • Das if then elseif else-Ende
  • Die while-Schleife
  • Die Wiederholungsschleife
  • Die einfache for-Schleife

Fehlerbehandlung

  • Rückgabewerte vs. Ausnahmen
  • Konvertieren eines Rückgabewerts in eine Ausnahme
  • Konvertieren einer Ausnahme in einen Rückgabewert
  • Fehlerstufen

Beispielprogramme

  • Polynomauswertung
  • Breitensuche zuerst
  • Zusätzliche Übungen

Mehr über Funktionen

  • Benannte Argumente
  • Objektorientierte Aufrufe
  • Schließungen
  • Curry
  • Tail Calls
  • Mehrfache Zuweisung und Rückgabe
  • Varargs

Iteratoren und Co-Routinen

  • Die generische for-Schleife
  • Zustandslose vs. zustandsbehaftete Iteratoren
  • Unterschiede zwischen Iteratoren und Co-Routinen

Metatabellen und Metamethoden

  • Das gesetzte Beispiel
  • Die __tostring-Metamethode
  • Arithmetische Metamethoden
  • Die Metamethoden __index, __newindex
  • Die __len-Metamethode

Module und Pakete

  • Verwendung von Modulen
  • Module erstellen
  • Organisieren von Modulen in Paketen

Erweiterte Tabellen

  • Tische für Warteschlangen und Stapel
  • Tabellen, die Diagramme beschreiben
  • Matrizen als Tabellen
  • Verknüpfte Listen als Tabellen
  • String-Puffer

Metatabellen anhand von Beispielen

  • Proxys
  • Schreibgeschützt
  • Auswendiglernen
  • Dynamische Programmierung mit Memoisierung
  • Das Fibonacci-Beispiel

Umgebungen

  • Beziehung zwischen globalen Variablen und Umgebungen
  • Freie Variablen
  • Die _ENV-Tabelle und die _G-Tabelle

Mehr zu Modulen

  • Verschiedene Ansätze zur Modulerstellung
  • Module, die das Verhalten ändern
  • Modulinitialisierung und Argumente
  • Verwendung von Umgebungen zur Implementierung sicherer Module

Erweiterte Iteratoren und Co-Routinen

  • Produzent, Konsument, Filter
  • Co-Routinen einschließen, um Iteratoren zu erhalten
  • Zustandsloser Iterator für verknüpfte Listen

Beitrag zum Ökosystem

  • Hochladen von Paketen auf MoonRocks

Funktionsparadigma in Lua

  • Die Kartenfunktion
  • Die Funktion „Reduzieren/Falten“.

Objektorientiert Programming

  • Verschiedene Ansätze für OOP
  • Verschiedene Ansätze zur Vererbung
  • Beispiele

Eine exemplarische Vorgehensweise für die Lua Standardbibliotheken

Zusammenstellung

  • Zusammenstellung
  • Bewertung
  • Beziehung zur Umwelt
  • Binäre Blöcke

Müllabfuhr

  • Schwache Tische
  • Finalizer, die __gc-Metamethode

Lua Bytecode und virtuelle Maschine

  • Generieren von Bytecode aus Quellcode
  • Bytecode lesen und analysieren
  • Kurzer Rundgang durch den Quellcode der Lua VM

C-Module

  • Aufruf von C von Lua
  • Search Pfad und Laden von C-Modulen

Aufruf von Lua aus C

  • Der Stapel
  • Fehlerbehandlung
  • Fortsetzungen

Umgang mit Lua-Werten und -Typen aus C

  • Arrays
  • Saiten
  • Benutzerdaten
  • Metatabellen
  • Objektorientierte Aufrufe
  • Leichte Benutzerdaten

Speicherverwaltung

  • Allokatoren
  • GC-API

Threads in Lua

  • Co-Routinen vs. Threads
  • Echtes Multithreading und Lua-Zustände

Voraussetzungen

Vertrautheit mit mindestens einer weiteren Programmiersprache. Programming Erfahrung. Wenn Sie mit anderen Skriptsprachen vertraut sind, wird es Ihnen leichter fallen, Lua zu verstehen.

  21 Stunden
 

Teilnehmerzahl


Beginnt

Endet


Die Termine sind abhängig von der Verfügbarkeit und finden zwischen 09:30 und 16:30 statt.
Offene Schulungskurse erfordern mindestens 5 Teilnehmer.

Erfahrungsberichte (3)

Kombinierte Kurse

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

  28 Stunden

Advanced Java Security

  21 Stunden

Combined JAVA, PHP and Web Application Security

  28 Stunden

Standard Java Security

  14 Stunden

Java and Web Application Security

  21 Stunden

Advanced Java, JEE and Web Application Security

  28 Stunden

Verwandte Kategorien