Einführung

Lua ist eine erweiterte Programmiersprache, die allgemeine prozedurale Programmierung mit Datenbeschreibungsmöglichkeiten unterstützt. Es bietet auch gute Unterstützung für objektorientierte Programmierung, funktionale Programmierung und datengesteuerte Programmierung. Lua ist als leistungsfähige, leichtgewichtige Skriptsprache für jedes Programm gedacht, das eine solche benötigt.

Übersicht

Als Erweiterungssprache hat Lua keine Vorstellung von einem "Hauptprogramm". Es funktioniert nur, wenn es in ein Wirtsprogramm eingebettet ist, das als Einbettungsprogramm oder einfach als Wirtsprogramm bezeichnet wird. Dieses Host-Programm kann Funktionen aufrufen, um einen Teil des Lua-Codes auszuführen, kann Lua-Variablen schreiben und lesen und C-Funktionen registrieren, die von Lua-Code aufgerufen werden sollen. Durch die Verwendung von C-Funktionen kann Lua so erweitert werden, dass es ein breites Spektrum unterschiedlicher Bereiche abdecken kann, wodurch maßgeschneiderte Programmiersprachen mit einem gemeinsamen syntaktischen Rahmen entstehen.

Unter Verwendung der Lua-API hat Netezza nzLua entwickelt. nzLua kann verwendet werden, um benutzerdefinierte Funktionen, Aggregate und Tabellenfunktionen auf der Netezza zu erstellen. Einige der Funktionen von Lua, wie z.B. die Möglichkeit, auf externe Dateien zuzugreifen, die Möglichkeit, externe Programme auszuführen, und Debugging-Funktionen sind in nzLua nicht verfügbar. Zusätzlich zu den Features, die entfernt wurden, wurden viele Funktionen zu nzLua hinzugefügt, um die Sprache für Entwickler, die mit den Standardfunktionen von SQL vertraut sind, einfach nutzbar zu machen. Die Version von Lua, die zur Erstellung von nzLua verwendet wurdeLuaJIT), nutzt Just-in-Time-Kompilierungstechniken, um häufig verwendete Codepfade direkt in 80x86 zu kompilieren.

Der JIT-Compiler ist zwar langsamer als ein UDX-Compiler, der C++ verwendet, führt aber zu einer 5x bis 50x schnelleren Ausführung als bei anderen interpretierten Sprachen wie Perl, Python und JavaScript (einschließlich JavaScript V8, das ebenfalls einen JIT-Compiler verwendet). Um nzLua so einfach wie möglich zu erlernen, enthält das nzLua ein Verzeichnis mit Beispielen für benutzerdefinierte nzLua, Aggregate und Tabellenfunktionen. Viele der Beispiele enthalten ausführliche Kommentare, die erklären, wie man die in nzLua verfügbaren Funktionen nutzt.