1 / 18

debugging in Lua

debugging in Lua. Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke. Merkmale von Lua. Typenbindung ist dynamisch Variablen sind Typ-frei Werte von Daten hingegen sind Typ-behaftet

airlia
Download Presentation

debugging in Lua

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke

  2. Merkmale von Lua • Typenbindung ist dynamisch • Variablen sind Typ-frei • Werte von Daten hingegen sind Typ-behaftet • Speicherverwaltung erfolgt automatisch • Nicht benötigter Speicher wird freigegeben • Möglichkeit der „Erweiterbaren Semantik“

  3. Merkmale von Lua • Sprache Lua selbst nicht objektorrientiert • Durch Lua eigene Mittel lassen Mechanismen der Objektorientieren Programmierung einbauen (zB. Vererbung) • Ist als Erweiterungssprache gedacht (zB. für die Integration in C/C++) • Kann auch eigenständig genutzt werden

  4. Konventionen zu Benennungen • Normale Variablen beginnen mit Kleinbuchstaben • Funktionen beginnen mit Großbuchstaben • Parameter beginnen mit einen Unterstrich

  5. Syntax • Kommentare sind mit -- eingeleitet. • Mehrzeilige Kommentare sind mit -- [[ möglich. Kommentarende ist bei ]] • Anweisungen können mit einem ; geschlossen werden

  6. Operatoren • "=" --> Zuweisungsoperator • "+" --> Additionsoperator • "-" --> Subtraktionsoperator oder auch Negationsoperator • "*" --> Multiplikationsoperator • "/" --> Divisionsoperator • ".." --> Verknüpfungsoperator

  7. If-else • if (Bedingung) then(Anweisungsblock den Fall)else(Anweisungsblock für unbehandelte Fälle)end

  8. If-ifelse • if (Bedingung A) then(Anweisungsblock für Fall A)elseif (Bedingung B) then(Anweisungsblock für Fall B)(optional: else(Anweisungsblock für unbehandelte Fälle))end

  9. Do-while Schleife • while (Bedingung) do(Anweisung)end

  10. Repeat-until • repeat(Anweisungen)until (Bedingung)

  11. Reservierte Schlüsselwörter • and • break • do • else • elseif • end • false • for • function • if • in • local • nil • not • or • repeat • return • then • true • until • while

  12. Fehlerquellen • Verwendete Schlüsselwörter als Name • Zeichen vergessen: • statt .. nur . / statt -- nur – • Funktion, Schleife, etc nicht mit „end“ beendet • Eingebundene Datei nicht im selben Ordner

  13. Leere Werte • ““ oder 0 sind keine leeren Werte • Nur nil und false sind „nichts“. • Eine leere Tabele {} ist „nil“ • nil kann als Abfrage genutzt werden

  14. Reihenfolge beachten! • Lokale Funktionen: • Erst definieren • Dann verwenden • Bei Verschachtelungen gilt das Zwiebelprinzip

  15. Programmabstürze unterdrücken • Mit der Funktion „pcall“ lassen sich unerwünschte Programmabbrüche vermeiden • pcall = „protectedcall“ • Fehlerhafte Funktion führt nicht zu Programmabbruch • Syntax: pcall (f, arg1, ···)

  16. Defensives Programmieren • Bevor mit Werten gearbeitet wird, erst überprüfen ob diese gegeben sind • Bsp. Ausgelagerte Datei • Nutzereingaben

  17. Lua-Editor/Debugger • Löve Studio: http://bitbucket.org/kevinclancy/love-studio/ • LuaEdit: http://luaedit.sourceforge.net/download.html

  18. Quellen: • http://www.andreas-rozek.de/Lua/ • http://lua.lickert.net/ • http://www.andreas-rozek.de/Lua/Modules/FunctionProtection.html • http://rail-sim.de/wiki/index.php/Das_Lua-Tutorial_-_1_Grundlagen • http://de.wikipedia.org/wiki/Hilfe:Lua/Programmierung

More Related