Lua
Lua – lekki, wieloparadygmatyczny język programowania skryptowego, opracowany w 1993 roku w Brazylii w PUCRS (Pontifícia Universidade Católica do Rio Grande do Sul). Jego nazwa oznacza „płomień” w języku portugalskim.
Historia
Projekt rozpoczął się w 1993 roku pod kierunkiem Roberto Ierusalimschy, Luiza Henrique de Figueiredo i Waldemara Celes. Pierwsza wersja, Lua 1.0, została wydana w 1993 roku jako narzędzie do rozszerzania aplikacji, głównie w środowisku Tecgraf. Kolejne wersje wprowadzały m.in. kolekcje typu table, mechanizmy pamięci garbage‑collector oraz wsparcie dla programowania obiektowego.
Charakterystyka
- Składnia – prosta, inspirowana językiem C i Pascal, co ułatwia naukę osobom posiadającym podstawy tych języków.
- Typowanie – dynamiczne, z jedną typową wartością
niloznaczającą brak danych. - Mechanizm pamięci – automatyczny garbage collector, eliminujący potrzebę ręcznego zwalniania pamięci.
- Rozszerzalność – możliwość wywoływania kodu napisanego w C i C++ oraz łatwe osadzanie w innych aplikacjach.
- Portowalność – interpreter dostępny na wszystkie główne platformy (Windows, macOS, Linux, Android, iOS).
Wersje
Główne gałęzie rozwojowe to:
- Lua 5.0 (wydana w 2000 roku) – wprowadzenie metatabel i systemu modułów.
- Lua 5.1 (wydana w 2006 roku) – dodanie wsparcia dla
coroutinei bibliotekidebug. - Lua 5.2 (wydana w 2011 roku) – nowy mechanizm środowiskowy i uproszczony system pakietów.
- Lua 5.3 (wydana w 2015 roku) – wprowadzenie liczby całkowitej 64‑bitowej oraz operatora bitowego.
- Lua 5.4 (wydana w 2020 roku) – wsparcie dla
to-be‑closedvariables oraz ulepszony garbage collector.
Zastosowania
Lua jest wykorzystywany w wielu dziedzinach:
- Gry komputerowe – silniki takie jak World of Warcraft, Roblox, Flame oraz CryEngine używają Lua do skryptowania logiki gry.
- Aplikacje mobilne – biblioteka Corona SDK (obecnie Solar2D) pozwala tworzyć aplikacje i gry na Androida oraz iOS przy użyciu Lua.
- Oprogramowanie CAD i GIS – AutoCAD oraz QGIS umożliwiają rozszerzanie funkcjonalności przy pomocy skryptów Lua.
- Systemy wbudowane – dzięki małemu rozmiarowi (kilka setek kilobajtów) język jest popularny w urządzeniach IoT.
- Przetwarzanie danych i automatyzacja – narzędzia takie jak Wireshark czy Nmap wykorzystują Lua do tworzenia własnych skryptów analizy.
Ekosystem
Komunikacja społeczności odbywa się głównie na Lua Users Wiki, w forach Stack Overflow oraz w repozytoriach GitHub, gdzie można znaleźć setki bibliotek (np. LuaSocket, LÖVE, Moai). Oficjalna strona projektu udostępnia pełną dokumentację oraz kompilatory dla wielu architektur.
Porównanie z innymi językami
W porównaniu do języków takich jak Python czy JavaScript, Lua wyróżnia się niższym zużyciem pamięci oraz lepszą integracją z C. Dzięki temu jest preferowany w sytuacjach, w których wymagana jest wysoka wydajność przy jednoczesnym zachowaniu prostoty skryptowania.
Przykładowy kod
-- prosty przykład: obliczanie silni przy pomocy rekurencji
function silnia(n)
if n == 0 then
return 1
else
return n * silnia(n - 1)
end
end
print("Silnia 5 wynosi:", silnia(5)) -- wynik: 120
Bibliografia i dalsze lektury
- Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes – Programming in Lua (wydania pierwsze, drugie, trzecie).
- Oficjalna dokumentacja Lua – Manual referencyjny.
- „Lua – język skryptowy w praktyce” – artykuł w Computer Science Journal.