<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Lua</id>
	<title>Lua - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Lua"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Lua&amp;action=history"/>
	<updated>2026-05-19T05:48:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Lua&amp;diff=104127&amp;oldid=prev</id>
		<title>imported&gt;Vfb1893: BKL Modula aufgelöst</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Lua&amp;diff=104127&amp;oldid=prev"/>
		<updated>2025-08-21T19:11:15Z</updated>

		<summary type="html">&lt;p&gt;BKL &lt;a href=&quot;/index.php/Modula&quot; title=&quot;Modula&quot;&gt;Modula&lt;/a&gt; aufgelöst&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Dieser Artikel|behandelt die Programmiersprache. Zu weiteren Bedeutungen siehe [[Lua (Begriffsklärung)]].}}&lt;br /&gt;
{{Infobox Programmiersprache&lt;br /&gt;
| Name                         = Lua&lt;br /&gt;
| Logo                         = [[Datei:Lua-Logo.svg|130px|Lua-Logo]]&lt;br /&gt;
| Beschreibung                 = Lua-Logo&lt;br /&gt;
| Logo-Hintergrund             = 1&lt;br /&gt;
| Paradigma                    = [[Skriptsprache]], [[Imperative Programmierung|imperativ]], [[Funktionale Programmierung|funktional]]&lt;br /&gt;
| Erscheinungsjahr             = 1993&lt;br /&gt;
| Entwickler                   = Roberto Ierusalimschy,&amp;lt;br /&amp;gt;Waldemar Celes,&amp;lt;br /&amp;gt;Luiz Henrique de Figueiredo&lt;br /&gt;
| AktuelleVersion              = &amp;lt;!-- aus Wikidata --&amp;gt;&lt;br /&gt;
| AktuelleVersionFreigabeDatum = &lt;br /&gt;
| Typisierung                  = dynamisch, schwach ({{lang|en|weak typing}})&lt;br /&gt;
| Implementierung              = &amp;#039;&amp;#039;&amp;#039;Lua&amp;#039;&amp;#039;&amp;#039;, LuaJIT&amp;lt;ref name=&amp;quot;LuaJIT&amp;quot;&amp;gt;{{Internetquelle |url=https://luajit.org/ |titel=LuaJIT |sprache=en |abruf=2017-02-26}}&amp;lt;/ref&amp;gt;, LLVM-Lua&amp;lt;ref&amp;gt;{{Internetquelle |url=https://github.com/neopallium/llvm-lua |titel=LLVM-Lua |sprache=en |abruf=2017-02-26}}&amp;lt;/ref&amp;gt;, LuaCLR&amp;lt;ref&amp;gt;{{Internetquelle |url=https://github.com/mascarenhas/luaclr |titel=LuaCLR |sprache=en |abruf=2016-01-03}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| Dialekte                     = Metalua, Idle, GSL Shell&lt;br /&gt;
| Beeinflusst_von               = [[C++]], [[CLU (Programmiersprache)|CLU]], [[Modula-2]], [[Scheme]], [[SNOBOL]]&lt;br /&gt;
| Beeinflusste                 = [[Falcon (Programmiersprache)|Falcon]], [[GameMonkey]], [[Io (Programmiersprache)|Io]], [[JavaScript]], [[Julia (Programmiersprache)|Julia]], [[MiniD]], [[MoonScript]], [[Red (Programmiersprache)|Red]], [[Ruby (Programmiersprache)|Ruby]], [[Squirrel (Programmiersprache)|Squirrel]]&lt;br /&gt;
| Standardisierungen           = &lt;br /&gt;
| Betriebssystem               = [[Plattformunabhängigkeit|plattformunabhängig]]&lt;br /&gt;
| Lizenz                       = [[MIT-Lizenz]]&lt;br /&gt;
| Website                      = [https://www.lua.org/ www.lua.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lua&amp;#039;&amp;#039;&amp;#039; ({{ptS}} für &amp;#039;&amp;#039;[[Mond]]&amp;#039;&amp;#039;) ist eine [[Imperative Programmierung|imperative]] und erweiterbare [[Skriptsprache]] zum Einbinden in [[Computerprogramm|Programme]], um diese leichter weiterentwickeln und warten zu können. Eine der besonderen Eigenschaften von Lua ist die geringe Größe des [[Compiler|kompilierten]] Skript-[[Interpreter]]s.&lt;br /&gt;
&lt;br /&gt;
Lua-Programme sind meist [[Plattformunabhängigkeit|plattformunabhängig]] und werden vor der Ausführung in [[Bytecode]] übersetzt. Lua ist vorrangig als eingebettete Skriptsprache für andere Programme konzipiert, aber man kann auch eigenständige Programme schreiben. In dieser Hinsicht ist sie mit [[Tcl]] vergleichbar. Vorteile von Lua sind die geringe Größe von 120 kB, die Erweiterbarkeit und die hohe Geschwindigkeit, verglichen mit anderen Skriptsprachen.&lt;br /&gt;
&lt;br /&gt;
Der Lua-Interpreter kann über eine [[C (Programmiersprache)|C]]-[[Programmbibliothek|Bibliothek]] angesprochen werden, die auch ein [[Programmierschnittstelle|API]] für die [[Laufzeitumgebung]] des Interpreters für Aufrufe vom C-Programm aus enthält. Mittels des API können verschiedene Teile des Programmes in C (oder C++) und Lua geschrieben werden, während Variablen und Funktionen in beiden Richtungen erreichbar bleiben (d.&amp;amp;nbsp;h. eine Funktion in Lua kann eine Funktion in C/C++ aufrufen und umgekehrt).&lt;br /&gt;
&lt;br /&gt;
Es gibt auch einen freien [[Just-in-time-Kompilierung|JIT-Compiler]] namens LuaJIT, der die Revision 5.1 der Sprache unterstützt.&amp;lt;ref name=&amp;quot;LuaJIT&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lua ist in [[Varianten der Programmiersprache C|ANSI-C]] [[Implementierung#Softwaretechnik|implementiert]] und unterstützt imperative und [[Funktionale Programmierung|funktionale]] Programmierung. Implementiert man jedoch selbst Objekte mittels Metatables, wird auch [[objektorientierte Programmierung]] möglich.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Lua wurde 1993 von Roberto Ierusalimschy, Luiz Henrique de Figueiredo und Waldemar Celes in der &amp;#039;&amp;#039;Computer Graphics Technology Group&amp;#039;&amp;#039; der [[Päpstliche Katholische Universität von Rio de Janeiro|Päpstlichen Katholischen Universität von Rio de Janeiro]] in [[Brasilien]] entwickelt. Lua ist [[freie Software]] und wurde bis zur Version 4 unter einer eigenen [[BSD-Lizenz]] veröffentlicht, ab Version 5 unter der [[MIT-Lizenz]].&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
Lua kann sowohl zum Verfassen eigenständiger Programme verwendet werden als auch als eingebettete Sprache dienen.&lt;br /&gt;
&lt;br /&gt;
Um einzelne Komponenten eines [[Computerspiel]]s wie z.&amp;amp;nbsp;B. Konfigurationsdateien oder die [[Künstliche Intelligenz|KI]] von [[Nicht-Spieler-Charakter|computergesteuerten Charakteren]] oder Gegnern von der [[Spiel-Engine]] zu trennen, kommt Lua bei der Entwicklung von Computerspielen oft zum Einsatz. Dies macht die meist teuer entwickelte Spiel-Engine flexibler und ermöglicht eine mit geringerem Aufwand verbundene [[Wiederverwendbarkeit]], weshalb Lua im Bereich [[proprietär]]er Spiele verwendet wird. Lua wird zum Beispiel in dem bekannten Spiel „[[Roblox]]“ verwendet.&lt;br /&gt;
&lt;br /&gt;
Auch einige insbesondere dynamische und [[Tiling (Computer)|Tiling]]-[[Fenstermanager]] nutzen Lua für Konfiguration und Steuerung, darunter [[awesome (Fenstermanager)|awesome]]&amp;lt;ref&amp;gt;Julien Danjou: [https://julien.danjou.info/why-not-lua/ &amp;#039;&amp;#039;Why not Lua&amp;#039;&amp;#039;], abgerufen am 19. Juni 2021.&amp;lt;/ref&amp;gt; und [[Ion (Fenstermanager)|Ion3]].&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
=== Datentypen ===&lt;br /&gt;
Neben den Datentypen [[Nullwert|nil]], [[Boolesche Variable|boolean]], number (mit den internen Subtypen [[Integer (Datentyp)|integer]] und [[Gleitkommazahl|float]]), [[Zeichenkette|string]], function, userdata und [[Koroutine|thread]] kennt Lua als einzigen strukturierten [[Datentyp]] table (Tabelle).&lt;br /&gt;
&lt;br /&gt;
Eine Tabelle ist ein [[assoziatives Datenfeld]], also eine Ansammlung von Schlüssel-Daten-Paaren. Der Schlüssel (Index) kann dabei jeden Datentyp (außer nil) besitzen. Weiterhin wird unterschieden zwischen dem Zahlenschlüssel 1 und dem Stringschlüssel „1“. Die Indizierung von Tabellen beginnt im Gegensatz zu Sprachen, die der [[C (Programmiersprache)|Programmiersprache C]] ähnlich sind, mit 1.&lt;br /&gt;
&lt;br /&gt;
Zu den Tabellen gibt es in Lua auch metatable; diese sind table, die an einem Table gebunden sind. Jedoch kann man nicht einfach auf sie zugreifen, wenn man durch die Tabelle durchläuft. Metatable werden oft dafür verwendet, einen nicht vorhandenen Index des Tables zu liefern, z.&amp;amp;nbsp;B. Table = {[1] = &amp;quot;String&amp;quot;, [2] = 13, [5] = true}. In dem Fall fehlt der Index 3 und 4. Wenn jetzt aber ein Metatable daran gebunden ist, können die Indexe 3 und 4 aus diesem verwendet werden. Das verhindert, dass Lua die [[Schleife (Programmierung)|Schleife]] abbricht. Ohne die Metatable würde hier der Index 5 einfach nicht mehr mit gelesen werden. Metatable können mit &amp;#039;&amp;#039;setmetatable()&amp;#039;&amp;#039; bearbeitet und erschaffen werden. Mit &amp;#039;&amp;#039;getmetatable()&amp;#039;&amp;#039; kann die Metatable in einer [[Variable (Programmierung)|Variable]] gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
Tabellen können auf folgende Weisen erzeugt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
T = {}                        -- Erzeugt eine leere Tabelle und weist sie der Variablen mit dem Namen T zu.&lt;br /&gt;
T = {&amp;quot;ja&amp;quot;, &amp;quot;nein&amp;quot;, &amp;quot;?&amp;quot;}       -- Eine Tabelle mit 3 Elementen, wobei T[1] == &amp;quot;ja&amp;quot;, T[2] == &amp;quot;nein&amp;quot; und T[3] == &amp;quot;?&amp;quot;.&lt;br /&gt;
T = {[1] = &amp;quot;ja&amp;quot;, [2] = &amp;quot;nein&amp;quot;, [3] = &amp;quot;?&amp;quot;} -- Wie Zeile vorher, nur mit expliziter Indizierung.&lt;br /&gt;
T = {[-900] = 3, [900] = 4}  -- Tabelle mit 2 Elementen, aber unregelmäßigen Indizes.&lt;br /&gt;
T = {x=5, y=10}              -- Typisches assoziatives Datenfeld mit T[&amp;quot;x&amp;quot;], T[&amp;quot;y&amp;quot;] (auch als T.x, T.y zugreifbar)&lt;br /&gt;
T = {x=5, y=10; &amp;quot;ja&amp;quot;, &amp;quot;nein&amp;quot;} -- Gemischte Tabelle mit T.x, T.y, T[1], T[2]&lt;br /&gt;
T = {Nachricht = &amp;quot;wahl&amp;quot;, {&amp;quot;ja&amp;quot;, &amp;quot;nein&amp;quot;, &amp;quot;?&amp;quot;}} -- Tabellen können weitere Tabellen enthalten.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zuweisungen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
a = 5&lt;br /&gt;
b = &amp;quot;hi&amp;quot;&lt;br /&gt;
local a = a&lt;br /&gt;
-- Einfache Zuweisungen. Variablen sind nicht typisiert und können verschiedene Datentypen haben.&lt;br /&gt;
-- Lokale Variablen (definiert mit &amp;quot;local&amp;quot;) sind auf den aktuellen Namensbereich beschränkt.&lt;br /&gt;
a, b, c = 1, 2, 3 -- Mehrfachzuweisungen sind erlaubt.&lt;br /&gt;
a, b = b, a -- Wertetausch: Anweisungen werden von rechts nach links ausgewertet.&lt;br /&gt;
a, b = 4, 5, &amp;quot;6&amp;quot; -- Überflüssige Werte (Bsp: &amp;quot;6&amp;quot;) werden ausgewertet, aber verworfen.&lt;br /&gt;
a, b = &amp;quot;da&amp;quot; -- Fehlende Werte auf der rechten Seite werden mit &amp;quot;nil&amp;quot; ersetzt.&lt;br /&gt;
a = nil -- Zerstört a. Der Speicherbereich von a wird vom Garbage-Collector freigegeben.&lt;br /&gt;
a = z -- Falls z nicht definiert ist, wird &amp;quot;nil&amp;quot; zugewiesen und somit a freigegeben.&lt;br /&gt;
a = &amp;quot;3&amp;quot; + &amp;quot;2&amp;quot; -- Der Operator + erwartet Zahlen, die Zeichenketten werden also&lt;br /&gt;
             -- in Zahlen konvertiert, also erfolgt hier die Zuweisung a = 5.&lt;br /&gt;
a = 3 .. 2 -- Der Verbindungsoperator erwartet Zeichenketten, die Zahlen werden&lt;br /&gt;
          -- konvertiert - a = &amp;quot;32&amp;quot;.&lt;br /&gt;
local a &amp;lt;const&amp;gt; = 5 -- lexikalische (lokale) Konstanten wurden in Lua 5.4 eingeführt&lt;br /&gt;
local f &amp;lt;close&amp;gt; = io.open(file) -- ebenfalls ab 5.4: to-close-Variablen mit ähnlicher Semantik&lt;br /&gt;
                                -- wie Pythons Context Manager (with ...)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Funktionen ===&lt;br /&gt;
Funktionen können mit dem Schlüsselwort &amp;lt;code&amp;gt;function&amp;lt;/code&amp;gt; erzeugt werden. Funktionen besitzen keine fixierte Anzahl an Parametern und Rückgabewerten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function probe(zahl1, zahl2, text, tabelle)&lt;br /&gt;
    zahl3 = zahl1 + zahl2&lt;br /&gt;
    zahl4 = zahl1 - zahl2&lt;br /&gt;
&lt;br /&gt;
    print(text)&lt;br /&gt;
&lt;br /&gt;
    if tabelle ~= nil then&lt;br /&gt;
        print(tabelle.eintrag)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return zahl3,zahl4&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
probe(10, 20, &amp;quot;Hallo &amp;quot;, {eintrag = &amp;quot;Welt&amp;quot;}) -- erlaubter Funktionsaufruf&lt;br /&gt;
&lt;br /&gt;
x,y = probe(10,20) -- ebenfalls erlaubter Aufruf, text und tabelle sind nil.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beim Aufruf der Funktion müssen nicht alle Variablen übergeben werden. Fehlende Parameter besitzen automatisch den [[Nullwert]] &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. Dasselbe gilt für Rückgabewerte. Dadurch lassen sich Funktionsüberladungen einfacher implementieren, das Vorkommen von Laufzeitfehlern steigt jedoch.&lt;br /&gt;
&lt;br /&gt;
=== Reservierte Schlüsselwörter ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
and break do else elseif end false for function goto if in&lt;br /&gt;
local nil not or repeat return then true until while&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Schlüsselwort &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; steht (neben &amp;#039;&amp;#039;false&amp;#039;&amp;#039;) für &amp;#039;&amp;#039;falsch&amp;#039;&amp;#039; und generell für nicht initialisierte Variablen oder nicht interpretierbare Werte.&lt;br /&gt;
&lt;br /&gt;
=== Beispielcode ===&lt;br /&gt;
Das klassische [[Hallo-Welt-Programm]] sieht wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;Hallo Welt!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kommentar (Programmierung)|Kommentare]] können einzeilig sowie mehrzeilig verfasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- Ein Kommentar in Lua beginnt mit zwei Bindestrichen und geht bis zum Ende der Zeile.&lt;br /&gt;
--[[Kommentare können auch über mehrere&lt;br /&gt;
     Zeilen ausgeweitet werden, sodass die Dokumentation&lt;br /&gt;
     des Quellcodes leichter fällt.]]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine [[Rekursion]] (Berechnung der [[Fakultät (Mathematik)|Fakultät]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function factorial(n)&lt;br /&gt;
    if n == 0 then&lt;br /&gt;
        return 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return n * factorial(n - 1)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit den [[Kurzschlussauswertung|Kurzschlussoperatoren]] „and“ und „or“ kann die Funktion kürzer so geschrieben werden (dies entspricht dem [[Bedingte Anweisung und Verzweigung#Auswahloperator|Auswahloperator]] ?: von [[Programmiersprache C|C]] und verwandten Sprachen):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function factorial(n)&lt;br /&gt;
    return n == 0 and 1 or n * factorial(n - 1)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funktionen gelten in Lua als [[First-Class-Objekt]]e. Das bedeutet insbesondere, dass Funktionen während der Laufzeit dynamisch erzeugt und (auch vorhandenen) Variablen zugewiesen werden können. Das folgende Beispiel zeigt, wie die Variable &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; (welche auf eine Standardfunktion der Lua-Bibliothek zeigt) mit einer anderen Funktion überschrieben wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
do&lt;br /&gt;
    local oldprint = print     -- aktuelle (globale) print-Funktion über oldprint zugreifbar machen&lt;br /&gt;
    function print(s)          -- Neue (globale) Definition von print, ...&lt;br /&gt;
        oldprint(&amp;quot;I say: &amp;quot; .. s) -- ... die die alte print-Funktion aufruft.&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Befehle in Lua können mit einem [[Semikolon]] abgeschlossen werden. Falls mehrere Befehle in einer Zeile stehen, erleichtert dies die Lesbarkeit des Codes.&lt;br /&gt;
&lt;br /&gt;
Die Syntax lehnt sich an die von [[Pascal (Programmiersprache)|Pascal]] an, was besonders Anfängern den Einstieg in Lua erleichtert. Im Gegensatz zu von Pascal abgeleiteten Sprachen nutzt Lua jedoch „==“ und nicht „=“ als [[Vergleichsoperator]], „=“ als Zuweisungsoperator (anstelle von „:=“ in Pascal) und „~=“ für ungleich (anstelle von „&amp;lt;&amp;gt;“).&lt;br /&gt;
&lt;br /&gt;
== Module ==&lt;br /&gt;
Lua ist durch benutzerdefinierte Module beliebig erweiterbar. Um diese zu verwalten, ist der in Lua geschriebene Paketverwalter &amp;#039;&amp;#039;LuaRocks&amp;#039;&amp;#039; verfügbar.&lt;br /&gt;
&lt;br /&gt;
Eine Liste mit verbreiteten Lua-Modulen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Modul !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| LuaFileSystem || Zugriff auf Ordnerstrukturen und Dateieigenschaften.&lt;br /&gt;
|-&lt;br /&gt;
| LuaDoc || Dokumentationstool für Lua-Quellcode.&lt;br /&gt;
|-&lt;br /&gt;
| LuaSocket || Bibliothek für Socketprogrammierung.&lt;br /&gt;
|-&lt;br /&gt;
| LuaSQL || Lua-Interface für [[PostgreSQL]], [[Open Database Connectivity|ODBC]], [[MySQL]], [[SQLite]], [[Oracle]], und [[OLE DB]].&lt;br /&gt;
|-&lt;br /&gt;
| stdlib || Bibliothek für häufige Programmieraufgaben; bezieht sich auf Listen, Tabellen, funktionale Programmierung, [[Regulärer Ausdruck|Reguläre Ausdrücke]], Objekte, [[Quelltextformatierung|Pretty-Printing]] und getopt.&lt;br /&gt;
|-&lt;br /&gt;
| [[Message-Digest Algorithm 5|MD5]] || einfache [[kryptografische Hashfunktion]]&lt;br /&gt;
|-&lt;br /&gt;
| Copas || Dispatcher, basierend auf Co-Routinen, der von [[TCP/IP]]-Servern verwendet werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| LuaZip || Bibliothek, die von [[ZIP-Dateiformat|ZIP-Dateien]] lesen kann.&lt;br /&gt;
|-&lt;br /&gt;
| LuaInterface || Verbindung zwischen Lua und [[Microsoft]]s [[.Net-Framework]] [[Common Language Runtime]] (CLR).&lt;br /&gt;
|-&lt;br /&gt;
| LuaBitOps || Eine auf [[C (Programmiersprache)|C]] basierende Erweiterung für Lua für bitweise Operationen von Zahlen.&lt;br /&gt;
|-&lt;br /&gt;
| LuaXML || Einfache Verbindung zwischen [[Extensible Markup Language|XML]] und Lua.&lt;br /&gt;
|-&lt;br /&gt;
| Lanes || Ermöglicht die [[Nebenläufigkeit|parallele Ausführung]] von verschiedenen Lua-Umgebungen.&lt;br /&gt;
|-&lt;br /&gt;
| Penlight || Bibliothek, die den Umgang mit Tabellen, [[Feld (Datentyp)|Arrays]], Strings, Dateipfaden, Ordnern, Daten und funktionalen Programmieranwendungen vereinfacht.&lt;br /&gt;
|-&lt;br /&gt;
| Oil || Einfacher und effizienter Object Request Broker ([[Common Object Request Broker Architecture|CORBA]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Roberto Ierusalimschy: &amp;#039;&amp;#039;Programmieren in Lua&amp;#039;&amp;#039;, 4. Auflage, Open Source Press, 2016, ISBN 978-85-903798-6-7.&lt;br /&gt;
* Roberto Ierusalimschy, L. H. Figueiredo, W. Celes: &amp;#039;&amp;#039;Lua 5.1 Reference Manual&amp;#039;&amp;#039;, August 2006, ISBN 85-903798-3-3.&lt;br /&gt;
* Kurt Jung, Aaron Brown: &amp;#039;&amp;#039;Beginning Lua Programming&amp;#039;&amp;#039;, Wrox, 2007, ISBN 0-470-06917-1.&lt;br /&gt;
* Claus Kühnel, Daniel Zwirner: &amp;#039;&amp;#039;Lua: Einsatz von Lua in Embedded Systems&amp;#039;&amp;#039;, 2. Auflage, Skript Verlag Kühnel, 2012, ISBN 978-3-907857-15-1.&lt;br /&gt;
* David Young: &amp;#039;&amp;#039;Learning Game AI Programming with Lua&amp;#039;&amp;#039;, Packt Publishing, 2014, ISBN 1-78328-133-2.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Commonscat|Lua (programming language)|Lua}}&lt;br /&gt;
* [https://www.lua.org/ Lua.org] – offizielle Website (englisch und portugiesisch)&lt;br /&gt;
* [https://www.luafaq.org/ Lua Unofficial FAQ]&lt;br /&gt;
* [https://luarocks.org/ LuaRocks] – Paketmanager und -repository&lt;br /&gt;
* [http://lua-users.org/wiki/ Lua Users Wiki]&lt;br /&gt;
* [https://github.com/LewisJEllis/awesome-lua Awesome Lua] auf GitHub&lt;br /&gt;
* [http://tylerneylon.com/a/learn-lua/ Learn Lua in 15 Minutes]&lt;br /&gt;
* [https://intern.fh-wedel.de/~si/seminare/ws09/Ausarbeitung/09.lua/lua0.htm Schnelles, leichtgewichtiges, eingebettetes Scripting mit Lua] von Jan Bornholdt, [[Fachhochschule Wedel]]&lt;br /&gt;
&lt;br /&gt;
== Quellen und Anmerkungen ==&lt;br /&gt;
&amp;lt;references responsive /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=7547043-3}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Skriptsprache]]&lt;br /&gt;
[[Kategorie:Imperative Programmiersprache]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Vfb1893</name></author>
	</entry>
</feed>