Lua
ParadigmasıÇoklu paradigma: Yordamsal, prototip tabanlı, betik dili, nesne yönelimli, fonksiyonel
İlk çıkışı1993 (33 yıl önce) (1993)
TasarımcıRoberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
Kararlı sürüm5.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çeleriMetalua, Idle, GSL Shell
EtkilendikleriC++, CLU, Modula, Scheme, SNOBOL
EtkiledikleriFalcon, GameMonkey, Io, JavaScript, Julia, MiniD, Red, Ruby, Squirrel, MoonScript
Uygulama diliANSI C
İşletim sistemiÇapraz platform
LisansMIT Lisansı
Olağan dosya uzantıları.lua
Web sitesilua.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:

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.



  1. ^ "LuaTeX". 23 Haziran 2026 tarihinde kaynağından arşivlendi.