| Paradigması | Çoklu paradigma: Yordamsal, prototip tabanlı, betik dili, nesne yönelimli, fonksiyonel |
|---|---|
| İlk çıkışı | 1993) (1993) |
| Tasarımcı | Roberto Ierusalimschy Waldemar Celes Luiz Henrique de Figueiredo |
| Kararlı sürüm | 5.4.8 (4 Haziran 2025 (2025-06-04)) |
| Önizleme sürümü | 5.3.3 RC3 (30 Mayıs 2016 (2016-05-30)) |
| Önemli uygulamaları | Lua, LuaJIT, LLVM-Lua |
| Lehçeleri | Metalua, Idle, GSL Shell |
| Etkilendikleri | C++, CLU, Modula, Scheme, SNOBOL |
| Etkiledikleri | Falcon, GameMonkey, Io, JavaScript, Julia, MiniD, Red, Ruby, Squirrel, MoonScript |
| Uygulama dili | ANSI C |
| İşletim sistemi | Çapraz platform |
| Lisans | MIT Lisansı |
| Olağan dosya uzantıları | .lua |
| Web sitesi | lua.org |
Lua (İngilizce telaffuz: /ˈluːə/; Portekizce: lua, "ay" anlamına gelir), 1993 yılında Brezilya'da geliştirilen, hafif yapılı, yüksek seviyeli ve çok paradigmalı bir programlama dilidir. Özellikle gömülü sistemler, oyun motorları ve uygulamalara gömülebilen betik (script) dili olarak kullanılmak üzere tasarlanmıştır. ANSI C dilinde yazılmış olması sayesinde yüksek taşınabilirlik sunar ve çok sayıda işletim sistemi ile donanım mimarisinde çalışabilir.
Lua, yalın sözdizimi, düşük bellek kullanımı ve yüksek çalışma performansı ile tanınmaktadır. Dilin temel tasarım amacı, ana uygulamalara kolayca entegre edilebilen, genişletilebilir ve öğrenmesi görece kolay bir betik dili oluşturmaktı. Bu nedenle Lua çekirdeği küçük tutulmuş, daha karmaşık özelliklerin ise harici kütüphaneler veya kullanıcı tarafından geliştirilen modüller aracılığıyla eklenebilmesine olanak sağlanmıştır.
Tarihçe
Lua, 1993 yılında Brezilya'daki Pontifical Catholic University of Rio de Janeiro bünyesinde faaliyet gösteren Bilgisayar Grafikleri Teknoloji Grubu (Tecgraf) tarafından geliştirildi. Dilin yaratıcıları Roberto Ierusalimschy, Luiz Henrique de Figueiredo ve Waldemar Celes'tir.
1970'lerin sonlarından 1990'ların başlarına kadar Brezilya'da uygulanan teknoloji ithalatı kısıtlamaları nedeniyle yerli yazılım geliştirme faaliyetleri büyük önem kazanmıştı. Tecgraf'ın müşterileri arasında yer alan enerji şirketi Petrobras için geliştirilen mühendislik uygulamalarında daha esnek yapılandırma ve otomasyon ihtiyaçlarının ortaya çıkması, yeni bir programlama dilinin geliştirilmesini teşvik etti.
Lua'nın doğrudan öncülleri, Tecgraf tarafından geliştirilen SOL (Simple Object Language) ve DEL (Data Entry Language) adlı veri tanımlama dilleriydi. Ancak bu dillerin akış kontrol mekanizmalarına sahip olmaması nedeniyle daha güçlü bir betik diline ihtiyaç duyuldu. Bunun sonucunda Lua geliştirildi ve kısa sürede Tecgraf projelerinde kullanılmaya başlandı.
Tasarım İlkeleri
Lua'nın tasarımında aşağıdaki hedefler ön planda tutulmuştur:
- Taşınabilirlik
- Yüksek çalışma performansı
- Küçük çalışma zamanı (runtime) boyutu
- Uygulamalara kolay gömülebilme
- Basit ve tutarlı sözdizimi
- Genişletilebilirlik
Dil, yordamsal, nesne yönelimli, işlevsel ve veri güdümlü programlama yaklaşımlarını desteklemektedir. Lua'da nesne yönelimli programlama için yerleşik sınıf sistemi bulunmaz; bunun yerine tablolar (tables) ve üstveri tabloları (metatables) kullanılarak nesne yönelimli yapılar oluşturulabilir.
Özellikler
- Lua'nın öne çıkan özellikleri şunlardır:
- Dinamik tür sistemi
- Otomatik bellek yönetimi (çöp toplama)
- Birinci sınıf fonksiyonlar
- Kapanımlar (closures)
- Korutinler (coroutines)
- Çoklu dönüş değerleri
- İlişkisel diziler ve sözlük yapıları sağlayan tablolar
- C ve C++ ile kolay entegrasyon
Dil yalnızca birkaç temel veri türü içerir: nil, boolean, number, string, function, userdata, thread ve table. Özellikle table veri yapısı, diziler, sözlükler, nesneler ve modüller gibi birçok yapının temelini oluşturur.
Kullanım Alanları
Lua, oyun geliştirme ve gömülü sistemlerde yaygın olarak kullanılmaktadır. Başta oyun motorları olmak üzere çok sayıda ticari ve açık kaynaklı yazılım Lua desteği sunmaktadır.
Lua'nın kullanıldığı bazı projeler şunlardır:
- World of Warcraft
- Roblox
- Garry's Mod
- Wireshark
- Nginx (OpenResty aracılığıyla)
- LuaTeX
Lisans
Lua'nın ilk sürümleri BSD lisansına benzer bir özgür yazılım lisansı altında yayımlanmıştır. Sürüm 5.0'dan itibaren ise MIT Lisansı altında dağıtılmaktadır. Bu lisans, Lua'nın ticari ve açık kaynaklı projelerde serbestçe kullanılmasına, değiştirilmesine ve yeniden dağıtılmasına olanak tanımaktadır.
- ^ "LuaTeX". 23 Haziran 2026 tarihinde kaynağından arşivlendi.