Auf einen Blick: Lua ist eine leichte, einbettbare Skriptsprache, die für ihre hohe Geschwindigkeit und einfache Syntax bekannt ist, was sie ideal für Anwendungen wie Spieleentwicklung und Netzwerkprogramme macht.
- Lua unterstützt mehrere Programmierparadigmen und erhöht so die Flexibilität der Entwickler.
- Es wird häufig in populären Spielen und Anwendungen verwendet, darunter World of Warcraft und Adobe Lightroom.
In diesem Artikel behandeln wir die Grundlagen der Programmiersprache Lua, darunter:
- Was es ist
- Hauptkomponenten
- Schlüsselmerkmale
- Vor- und Nachteile
- Anwendungsfälle
- Lua vs. andere Sprachen
- Installation von Lua in einer Windows-Umgebung
- Er wird gestartet und zum Laufen gebracht
Fangen wir an.
Lua vs. andere Sprachen
Installation von Lua
Was ist Lua?
Lua ist eine robuste, leichte und einbettbare Skriptsprache, die mehrere Programmiermethoden unterstützt, darunter prozedurale, objektorientierte, funktionale und datengetriebene Programmierung.
Da der Hauptfokus von Lua auf Skripting liegt, wird es selten als eigenständige Programmiersprache verwendet. Stattdessen wird es als Skriptsprache verwendet, die in andere Programme integriert (eingebettet) werden kann, die hauptsächlich in C und C++ geschrieben sind. Es unterstützt auch andere Programmiersprachen über Drittanbieter-Plugins (NLua/KeraLua für .NET/C#).
Beliebte Anwendungsfälle für Lua sind:
- Als beliebte Komponente in der Entwicklung von Videospielen und Spiele-Engines. Zum Beispiel verwenden Warframe, World of Warcraft und CRYENGINE alle Lua.
- Als Programmiersprache in vielen Netzwerkprogrammen wie CISCO Systems, Nmap und ModSecurity.
- Als Programmiersprache in Industrieprogrammen wie Adobe Lightroom und MySQL Workbench.
- Als Bibliothek, die Entwickler mit ihren Programmen integrieren können, um Skriptfunktionen zu ermöglichen.
Als Skriptsprache hat Lua keine eigene Hauptanwendung. Stattdessen fungiert es ausschließlich als eingebetteter Teil der Host-Anwendung.
(Entdecken Sie die beliebtesten Programmiersprachen.)
Wie Lua funktioniert
Lua besteht aus zwei Hauptbestandteilen:
- Der Lua-Dolmetscher
- Die Lua-virtuelle Maschine (VM)
Lua wird nicht direkt über eine Lua-Datei interpretiert wie andere Sprachen wie Python. Stattdessen verwendet es den Lua-Interpreter, um eine Lua-Datei in Bytecode zu kompilieren. Der Lua-Interpreter ist in ANSI C geschrieben, was ihn hochportabel macht und auf einer Vielzahl von Geräten ausführen kann.
In der Regel erfolgt die Kompilierung zur Laufzeit. Manchmal kann sie jedoch vor der Laufzeit erfolgen, um die Ladezeiten zu verlängern. Dann führt die Lua-virtuelle Maschine diesen kompilierten Bytecode aus. Die registerbasierte Architektur der Lua-virtuellen Maschine ähnelt sehr den tatsächlichen Hardwarearchitekturen und erhöht die Gesamtleistung des Programms.
Wesentliche Merkmale von Lua
Also, was ist so großartig an Lua? Das sind die definierenden Merkmale:
Geschwindigkeit
Lua gilt als eine der schnellsten Programmiersprachen unter den interpretierten Skriptsprachen. Insbesondere kann Lua große Aufgabenreihenfolgen schneller ausführen als die meisten anderen Programmiersprachen sowohl im Benchmarking als auch in realen Szenarien.
Für mehr Geschwindigkeit verwendet eine unabhängige Implementierung von Lua namens LuaJIT einen Just-in-Time-Compiler, der Lua noch schneller macht.
Größe
Lua hat einen deutlich kleineren Umfang als andere Programmiersprachen, da der vollständige Quellcode und die Dokumentation nur 1,3 MB umfassen. Der Lua-Interpreter mit allen Standardbibliotheken benötigt 278K, während die vollständige Lua-Bibliothek nur 466K benötigt.
Diese kleine Größe ist ideal, wenn Lua in mehrere Plattformen integriert wird, von eingebetteten Geräten bis hin zu riesigen Spiel-Engines, bei denen jedes Byte wertvoll ist.
Portabilität und Einbettbarkeit
Mit seiner kleinen Größe ist die Portabilität von Lua nahezu unbegrenzt; jede Plattform, die den Standard-C-Compiler unterstützt, kann Lua direkt ausführen. Luas Geschwindigkeit und Größe werden zu enormen Vorteilen, wenn Lua in eine andere Programmiersprache eingebettet wird. Das liegt daran, dass sie helfen können, die Programmgeschwindigkeit zu erhöhen, ohne bestehende Funktionalität zu beeinträchtigen.
Wichtig ist, dass Lua keine komplexen Neuschreibvorgänge benötigt, um mit anderen Programmiersprachen kompatibel zu sein. Lua kann mit primären Programmiersprachen wie C, C++, Java, C# usw. verwendet werden. sowie mit anderen Skriptsprachen wie Perl und Ruby, was seine Benutzerfreundlichkeit weiter erweitert.
Einfachheit
Lua ist im Design einfach, bietet aber leistungsstarke Funktionalität. Eine der Kernfunktionen von Lua sind Metamechanismen, die es Entwicklern ermöglichen, Funktionen zu implementieren – anstatt eine Vielzahl von Funktionen direkt in der Sprache bereitzustellen.
Lua verfügt außerdem über inkrementelle Garbage Collection, was den Speicherverbrauch und die Implementierungskomplexität reduziert. Seine Sandbox-Funktion kann verwendet werden, um Funktionen und Ressourcen zu isolieren. Dies erhöht die Sicherheit des Programms und bietet Coroutinen für Multitasking.
Alle diese Funktionen verfügen über eine einfache Syntax und ein leicht verständliches Format, sodass jeder Lua leicht aufnehmen und in seinen Programmen verwenden kann.
Lizenz
Lua ist freie und Open-Source-Software, die unter der MIT-Lizenz vertrieben wird. Das bedeutet, dass jeder Lua für jeden Zweck nutzen kann, ohne Lizenzgebühren oder Lizenzgebühren zu zahlen.
Vorteile und Nachteile
Wie jede Sprache hat Lua seine Vor- und Nachteile.
Vorteile von Lua
- Einfache App-Integration. Seine hohe Leistung und geringe Größe machen es einfach, Lua in Anwendungen zu integrieren.
- Einfache Syntax. Relativ einfache Syntaxstruktur mit etwa 20 dedizierten Schlüsselwörtern, was hilft, leicht in die Lua-Programmierung einzutauchen.
- Flexibilität. Ohne Standardbibliotheken kannst du Lua an jeden Bedarf anpassen.
- Plattformübergreifende Kompatibilität und Unterstützung für den Standard-C-Compiler ermöglichen es Lua, praktisch überall auszuführen.
- Dynamische Variablen in Lua ermöglichen die Definition von Variablen, ohne Typen zu definieren, und der Typ wird zur Laufzeit automatisch bestimmt.
- Einfaches Debugging. Einfache und leistungsstarke Debug-Bibliothek.
- Reichlich Dokumentation. Umfassende Dokumentation, um Lua-Projekte schnell zum Laufen zu bringen und die aktive Community zu erreichen.
Nachteile von Lua
- Begrenzte Unterstützung für die Fehlerbehandlung kann zu längeren Debugging-Zeiten führen, um die genauen Fehler in einem Lua-Skript zu identifizieren.
- Alle Variablen werden als globale Variablen (globaler Scope) erstellt, was zu Fehlern bei der Variablenzuweisung führen kann.
- Begrenzte Unterstützung für Mustererkennung.
Wann man Lua einsetzen sollte
Als Skriptsprache ohne große Einschränkungen kann man Lua für jedes Szenario verwenden, von einem einfachen Backend-Skript auf einem Webserver bis hin zu komplexer Spieleentwicklung.
Lua ist in der Videospielentwicklung sehr verbreitet, da es genutzt werden kann, um Funktionen zu schaffen, ohne die Gesamtleistung zu beeinträchtigen, während gleichzeitig alles getrennt bleibt.
Ein weiterer Bereich, in dem Lua sich auszeichnet, ist das Embedded-Programmieren, bei dem Größe und Leistung große Prioritäten sind. Lua kann in alltäglichen Anwendungen verwendet werden, um die vorhandene Funktionalität zu erweitern oder neue Funktionen und Funktionen zu schaffen.
Einige beliebte Spiele, Programme und Dienste, die Lua nutzen, sind Dark Souls, Fable II, Garry's Mod, Wireshark, VLC, Apache und Nginx Web Server.
Wie schneidet Lua im Vergleich zu anderen Sprachen ab?
Hier ist ein Blick auf die Unterschiede zwischen der hochrangigen allgemeinen Programmiersprache Python, dem hochrangigen objektorientierten Java und webfokussiertem Javascript – alle im Vergleich zu Lua.
Schauen wir uns nun an, wie man eine Entwicklungsumgebung unter Windows einrichtet. Zuerst installieren wir Lua.
Schritt 1
Navigieren Sie zur Lua.org Download-Seite. Hier verwenden wir eine vorkompilierte Binär, um Lua in Windows zu installieren. Klicken Sie also auf "Binärlink erhalten", wie im untenstehenden Screenshot gezeigt.
Schritt 1
Klicke auf der LuaBinaries Seite auf "Download", und du wirst auf eine Seite mit einer Liste vorkompilierter Binärdateien weitergeleitet. Wähle die passende Version aus dieser Liste aus.
Wir werden die neueste Lua-Version für Windows 64-Bit verwenden.
Dies führt den Benutzer zu einer SourceForge-Seite, auf der die Binärform heruntergeladen wird.
Verschieben Sie die heruntergeladene Zip-Datei an einen beliebigen Ort, um die Binärdateien dauerhaft zu speichern.
Hier verwenden wir den Standort "D:\Program Files\Lua". Nach dem Verschieben der Zip-Datei entpacken Sie einfach ihren Inhalt mit einem beliebigen Kompressionsprogramm (z. B. Windows Explorer, 7zip, WinRar).
Schritt 4
Wir müssen den Standort der Lua-Binärdateien zum System-PATH hinzufügen, damit Windows Lua von überall im System aufrufen kann.
Schritt 4.1. Navigiere zu Umgebungsvariablen. (Öffne den Windows Explorer, klicke mit der rechten Maustaste auf diesen PC und wähle Eigenschaften aus.)
Schritt 4.2. Klicke auf "Erweiterte Systemeinstellungen" auf dem angezeigten Bildschirm und dann auf "Umgebungsvariablen".
Schritt 4.3. Im Abschnitt Systemvariablen fügen Sie die Position der Lua-ausführbaren Dateien als neuen Eintrag für die Path-Variable hinzu.
Schritt 5
Überprüfen Sie, ob das System Lua erkennt, indem Sie eine Eingabeaufforderung oder ein PowerShell-Fenster öffnen und den Lua-Befehl eingeben (Lua mit der Version – lua54).
Einrichtung einer Lua-Entwicklungsumgebung
Jetzt, da wir Lua im System installiert haben, brauchen wir eine Entwicklungsumgebung, um mit der Programmierung voranzugehen. Dafür können wir wählen:
- Eine dedizierte Lua-IDE wie ZeroBrane Studio
- Eine allgemeine IDE wie VSCode
Für diese Instanz werden wir VSCode verwenden.
Lassen Sie uns in VSCode eine Datei namens "lua_basic.lua" erstellen und diese Datei am gewünschten Ort speichern. Dann geben wir dort einige Druckanweisungen ein, wie folgt.
print("Hello Lua")
print(10*10)
print("We have multiplied 10 by 10")
Unser Lua-Programm muss vor dem Ausführen kompiliert werden, daher müssen wir eine Build Task erstellen. Dazu klicken Sie auf das Terminalmenü, dann auf Build Task ausführen und wählen Sie die Option Build Task konfigurieren.
(Je nach VSCode-Konfiguration gibt es unterschiedliche Build-Task-Vorlagen. Wählen Sie "Create tasks.json from template" und schließlich die Option "Others", um eine benutzerdefinierte Build-Aufgabe zu definieren.)
Build-Ausführen-Aufgabe
Build Task konfigurieren
Erstellen Sie tasks.json aus Vorlage
Sonstiges
Build Task konfigurieren
Erstellen Sie tasks.json aus Vorlage
Sonstiges
Schritt 2
Schritt 2
Schritt 2.1. Wir fügen folgenden Codeblock hinzu, um die Aufgabe zu konfigurieren. In diesem Codeblock haben wir eine Aufgabe namens "Run Lua" definiert, die auf der Shell mit dem Befehl "lua54" ausgeführt wird. Dieser Befehl nimmt die aktuelle Datei als Argument und führt eine Build-Operation aus.
task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Lua",
"type": "shell",
"command": "lua54",
"args": [
"${file}"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
task.json
Schritt 3
Schritt 3
Öffne die Datei "lua_basic.lua" erneut. Gehe dann erneut zum "Terminal" und klicke auf "Build Task ausführen" oder benutze die Verknüpfung Strg+Shift+B.
Das wird die Datei kompilieren und uns die Ausgabe liefern.
Das war's! Jetzt haben wir eine funktionierende Lua-Entwicklungsumgebung, mit der man Lua-Skripte erstellen kann. Wir können das offizielle Lua-Referenzhandbuch nutzen, um die Lua-Sprache weiter zu erforschen.
Lua ist mächtig
Lua ist eine leistungsstarke Skriptsprache, die unbegrenztes Potenzial hat, jedem Programm auf einer Vielzahl von Plattformen Funktionalität hinzuzufügen, um jeden Anwendungsfall zu erfüllen.
Verwandte Literatur
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.