Lua
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
-- 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
endSı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.
İlgili sayfalar
- YorumlayıcıProgramlamanın Temelleri, s. 55Yorumlayıcı, tüm programı önce ayrı bir çalıştırılabilir dosyaya çevirmek yerine kaynak kodu doğrudan, adım adım çalıştıran bir programdır.
- PythonProgramlama Dilleri, s. 26Python, okunaklı sözdizimiyle bilinen; veri bilimi, otomasyon ve web arka uçlarında yaygın kullanılan, genel amaçlı ve dinamik tipli bir programlama dilidir.
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- CProgramlama Dilleri, s. 3C, belleğe doğrudan erişim sağlayan, derlenen ve düşük seviyeli bir programlama dilidir; işletim sistemlerinde, sürücülerde ve gömülü yazılımlarda kullanılır.
- Çöp toplamaProgramlamanın Temelleri, s. 9Çöp toplama, dil çalışma zamanının programın artık kullanamadığı verileri bulup bu belleği yeniden kullanıma açtığı otomatik bellek yönetimidir.
- Hash TablosuVeri Yapıları, s. 18Hash tablosu, anahtar-değer çiftlerini saklayan ve hash fonksiyonuyla herhangi bir anahtarın değerini ortalamada sabit sürede bulan bir veri yapısıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin