Definition

Was ist Lua?

| Autor / Redakteur: Tutanch / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

Lua ist eine frei verfügbare Skriptsprache, die für die allgemeine prozedurale Programmierung einsetzbar ist. Zu den besonderen Eigenschaften der Skriptsprache gehören die gute Erweiterbarkeit, die leichte Erlernbarkeit und die geringe Größe des kompilierten Skript-Interpreters.

Das Wort Lua kommt aus dem Portugiesischen und bedeutet Mond. Lua bezeichnet eine frei verfügbare Skriptsprache, die 1993 in Brasilien an der Päpstlichen Katholischen Universität von Rio de Janeiro von der Computer Graphics Technology Group entwickelt wurde. Bis zur Version 4 stand die Software unter BSD-Lizenz. Seit der Version 5 ist sie unter MIT-Lizenz erhältlich.

Die Skriptsprache gestattet die allgemeine prozedurale Programmierung. Sie ist flexibel erweiterbar, leicht zu erlernen und bietet eine gute Unterstützung bei der objektorientierten und datengestützten Programmierung. Implementiert ist Lua als Bibliothek in C. Zu den besonderen Eigenschaften zählen die geringe Größe des kompilierten Skript-Interpreters und die in Host-Anwendungen eingebettete Arbeitsweise. Durch die Verwendung von C-Funktionen ist Lua erweiterbar und deckt verschiedenste Anforderungen ab. Zur Distribution von Lua gehören ein Beispiel-Hostprogramm, die Lua-Bibliothek und der Lua-Interpreter.

Der Interpreter selbst umfasst nur wenige hundert Zeilen und greift im Wesentlichen auf die Funktionen der Bibliothek zu. Im Interpreter sind Funktionen wie Garbage Collection integriert. Er bietet eine im Vergleich zu anderen Skriptsprachen hohe Ausführungsgeschwindigkeit. Da Lua plattformunabhängig konzipiert ist, lässt es sich auf verschiedenen Betriebssystemen einsetzen. Vor der Ausführung erfolgt die Übersetzung in den systemspezifischen Bytecode. Die offizielle Webpräsenz ist auf lua.org zu finden.

Die zentralen Merkmale der Skriptsprache Lua

Zentrale Merkmale der Skriptsprache Lua sind:

  • freie Verfügbarkeit
  • für die allgemeine prozedurale Programmierung geeignet
  • gute Erweiterbarkeit
  • schlanke Skriptsprache mit geringer Interpretergröße
  • plattformunabhängige Arbeitsweise
  • gute Unterstützung der objektorientierten und datengestützten Programmierung
  • hohe Ausführungsgeschwindigkeit im Vergleich zu anderen Skriptsprachen
  • einfach erlernbare Syntax

Die Syntax von Lua und die Erweiterbarkeit mit Modulen

Konzeptionell ist Lua einfach gehalten. Die Syntax folgt üblichen Konventionen und ist in Teilen an Pascal angelehnt. Mehrere Befehle in einer Skriptzeile lassen sich für eine bessere Lesbarkeit per Semikolon trennen. Funktionsblöcke sind mit Schlüsselwörtern wie "goto" oder "end" markiert. In einem Block sind eine oder mehrere Lua-Anweisungen enthalten. Die Schlüsselwörter "end", "elseif" oder "else" weisen auf das Ende eines Funktionsblocks hin. Mehrere Funktionsblöcke lassen sich ineinander verschachteln. Mit dem Schlüsselwort "local" gekennzeichnete lokale Variablen sind jeweils nur für den Funktionsblock gültig, für den sie definiert sind.

Die insgesamt etwa 20 definierten Schlüsselwörter sind einfach und ohne großen Aufwand erlernbar. Als Datentypen kennt Lua number, nil, boolean, string, userdata, function oder thread. Einziger strukturierter Datentyp ist die Tabelle (table). Der jeweilige Variablentyp wird beim Skriptablauf bestimmt und lässt sich bei Bedarf umwandeln.

Eine weitere Eigenschaft von Lua ist die Erweiterbarkeit der Skriptsprache mit benutzerdefinierten Modulen. Für die Verwaltung von Modulen ist ein in Lua realisierter Paketmanager verfügbar.

Anwendungsbereiche der Skriptsprache Lua

Den Anwendungsmöglichkeiten der Skriptsprache Lua sind kaum Grenzen gesetzt. Sie reichen von Konfigurationsdateien mit erweiterten Möglichkeiten über in Lua geschriebene Webserver und Editoren bis zur Spieleentwicklung. Besonders im Spieleumfeld und im Bereich der Game Engines zählt Lua zu den beliebtesten und meistgenutzten Skriptsprachen. Hunderte Spiele nutzen die Möglichkeiten von Lua. Oft kommt Lua zur Trennung von Game Engine und Konfigurationen oder Spielcharakteren zum Einsatz. Dadurch wird die Game Engine flexibler und ist für andere Spiele wiederverwendbar. Weitere Anwendungsbereiche sind die Netzwerk- und Systemprogrammierung.

Anwendungsbeispiele für die Verwendung von Lua

Im Netzwerkbereich kommt Lua beispielsweise für den Netzwerk-Analysator Wireshark oder den Scanner Nmap zum Einsatz. So verwendet Nmap Lua für die Automatisierung verschiedener Netzwerkfunktionen. Weitere Beispielprogramme aus dem Netzumfeld, die bestimmte Lua-Funktionen nutzen oder für die Erweiterung einsetzen, sind der MySQL-Proxy, die VoIP-Software FreeSwitch, die Redis-NoSQL-Datenbank oder die Webserver Apache und Nginx.

Im Spieleumfeld findet sich Lua in dem Java-basierten Spiel ComputerCraft, im Rätselspiel Enigma und im sehr bekannten Multi-User-Online-Rollenspiel World of Warcraft. World of Warcraft lässt sich mit in Lua programmierten Skripten erweitern. Sie verändern die Benutzerschnittstelle und fügen dem Spiel neue Funktionen hinzu. Auch das auf Source Engine basierende Spiel Garry's Mod lässt sich mit in Lua geschriebenen Add-ons vielfältig erweitern.

Weitere Programme, in denen Lua für Konfigurations- und Automatisierungszwecke von sich wiederholenden Aufgaben Anwendung findet, sind Adobe Photoshop Lightroom oder der VLC Media Player. Die XMPP-Server-Software Prosody ist mit Lua implementiert.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

SAS stellt KI, Governance und Collaboration in den Vordergrund

Nachbericht SAS Forum Deutschland 2018

SAS stellt KI, Governance und Collaboration in den Vordergrund

Auf seiner Anwenderkonferenz „SAS Forum Deutschland 2018“ in Bonn stellte der US-Analytics-Spezialist SAS seine Self-Service-Analyse-Plattform SAS Viya in der Version 3.3 vor und gewährte Ausblicke auf Version 3.4. Viya ist auf moderne Analytics- und KI-Technologien ausgerichtet, daher sollen auch Grafikprozessoren, Container und Collaboration-Technologien unterstützt werden. lesen

Das kann das Deep Learning Framework Torch

Deep Learning

Das kann das Deep Learning Framework Torch

Torch ist ein wissenschaftliches Deep Learning Framework mit beachtlichem Support an Algorithmen für das maschinelle Lernen. Auf Grund der einfachen Skriptsprache Lua und der C/CUDA-Implementierung ist das Open-Source-Paket sehr anwenderfreundlich und sorgt für beschleunigte Prozesse. lesen

SAS stellt Machine Learning und visuelle Analytik in den Vordergrund

Nachbericht SAS Forum 2017

SAS stellt Machine Learning und visuelle Analytik in den Vordergrund

Auf seiner Anwenderkonferenz „SAS Forum Deutschland 2017“ in Bonn stellte der US-amerikanische Analytics-Spezialist seine junge Self-Service-Analyse-Plattform SAS Viya in der Version 3.2 vor. Sie ist auf moderne Technologien und Einsatzszenarien ausgerichtet. Angebote für IoT-basiertes Edge Computing, Betrugsermittlung und Analytics-as-a-Service ergänzen die Neuerungen. lesen

Wie sich das menschliche Gehirn im Computer nachbilden lässt

Künstliche Intelligenz

Wie sich das menschliche Gehirn im Computer nachbilden lässt

Die Herausforderung, die Komplexität des menschlichen Gehirns im Computer nachzubilden, hat eine neue Generation von Wissenschaftlern und Entwicklern von Computeralgorithmen hervorgebracht. lesen

Selbstlernende Advanced-Analytics-Lösung von SAS

Visual Data Mining and Machine Learning

Selbstlernende Advanced-Analytics-Lösung von SAS

SAS bietet mit „Visual Data Mining and Machine Learning“ eine selbstlernende Advanced-Analytics-Lösung. Data Scientists sollen damit noch effektiver Daten verarbeiten und noch bessere Ergebnisse erzielen können. lesen

SAS stellt Analytics-Architektur Viya vor

Offen und skalierbar

SAS stellt Analytics-Architektur Viya vor

Mit Viya stellt Softwarespezialist SAS seine neue Analytics-Architektur der nächsten Generation vor. Durch das offene, skalierbare und Cloud-optimierte Design soll sie für verschiedenste Anwendungsbereiche geeignet sein. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45627531 / Definitionen)