# Lua

Adres: https://softwaredictionary.org/tr/terimler/lua
Kategori: Programlama Dilleri
Son güncelleme: 2026-09-30

Kısaca: Lua, başka uygulamalara gömülmek üzere tasarlanmış küçük ve hızlı bir betik dilidir; oyun betikleri, eklentiler ve yapılandırma için popülerdir.

## Lua nedir?

Lua, 1993'te Brezilya'daki Rio de Janeiro Papalık Katolik Üniversitesi'nde geliştirilen hafif bir betik dilidir; adı Portekizce'de "ay" anlamına gelir. Başka programların içine gömülmek üzere tasarlandı: yorumlayıcının tamamı, bir uygulamanın içine katabileceği küçük bir C kütüphanesidir; böylece kullanıcılar uygulamayı yeniden derlemeden genişletmek ya da yapılandırmak için Lua betikleri yazabilir.

Lua dinamik tiplidir ve bilinçli olarak minimaldir. Tek yerleşik veri yapısı, aynı anda dizi, sözlük, nesne ve modül işlevi gören tablodur (table); metatable'lar ise tabloların davranışını özelleştirerek sınıflar kurmanıza ya da operatörleri aşırı yüklemenize izin verir. Lua dizi konumlarını 1'den başlatır, birinci sınıf fonksiyonları ve closure'ları destekler ve işbirlikçi çoklu görev için eş yordamlara (coroutines) sahiptir. Bellek bir çöp toplayıcıyla yönetilir; ayrı LuaJIT projesi ise çok hızlı bir tam zamanında derleyici sağlar.

Lua; video oyunlarında ve oyun motorlarında betik yazmada, metin düzenleyicilerde eklenti ve yapılandırmada, web sunucuları, vekil sunucular (proxy) ve veritabanları içinde çalışan betiklerde ve gömülü cihazlarda yaygın olarak kullanılır. Lua'yı gömmek, bir cihaza tarif kartı yuvası eklemeye benzer: makine ağır işi hızlı yerel kodda yapar, betikler ise ne yapması gerektiğine karar verir.

Lua sıklıkla, onlar da dinamik betik dilleri olan Python ve JavaScript ile kıyaslanır. Temel fark amaçtır: Python ve JavaScript büyük standart kütüphaneler sunar ve çoğunlukla bütün uygulamaları yazmak için kullanılır; Lua ise minikdir, bir C ya da C++ ana programına gömmesi kolaydır ve genellikle başka bir programın içinde çalışır. Bazı platformlar, çekirdek dilin üzerine kademeli tipleme gibi özellikler ekleyen kendi Lua lehçelerini sürdürür.

## Önemli noktalar

- Lua, başka uygulamaların içine gömülmek üzere tasarlanmış minik bir betik dilidir.
- Tablolar; diziler, eşlemeler ve nesneler için tek, esnek veri yapısıdır.
- Lua'da diziler geleneksel olarak 1 numaralı dizinden başlar.
- Oyun betiklerinde, düzenleyici eklentilerinde ve sunucu tarafı uzantılarında yaygın kullanılır.

## Örnek: Lua'da tablolar ve metotlar

```lua
-- A table works as both an array and a dictionary
local player = { name = "Ada", score = 0, items = { "sword", "map" } }

function player:addPoints(points)   -- ':' passes the table as self
  self.score = self.score + points
end

player:addPoints(10)
print(player.name .. " has " .. player.score .. " points")  -- Ada has 10 points

for i, item in ipairs(player.items) do   -- arrays start at 1
  print(i, item)                         -- 1 sword, then 2 map
end
```

## Sık sorulan sorular

**Lua dizileri neden 1'den başlar?**

Lua, 1'den saymaya alışkın mühendisler ve programcı olmayanlar göz önünde bulundurularak tasarlandı; bu yüzden standart kütüphanesi ve uzunluk operatörü ilk dizin olarak 1'i kabul eder. 0 dizinine bir değer koyabilirsiniz, ancak `ipairs` gibi fonksiyonlar 1'den başlar.

**Lua öğrenmek zor mu?**

Hayır. Lua'nın sözdizimi küçüktür ve yalnızca bir avuç kavramı vardır; bu yüzden birçok kişi temelleri bir günde öğrenir. Oyunların ve araçların kullanıcı betikleri için onu seçmesinin bir nedeni de budur.

**Lua, Python'dan hızlı mı?**

Standart Lua yorumlayıcısı basit betiklerde çoğu zaman CPython'dan hızlıdır ve LuaJIT çok daha hızlı olabilir. Gerçek performans iş yüküne ve işin ne kadarının yerel kütüphanelerde yapıldığına bağlıdır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
