Lua ( , anlamı ay), ağırlıklı olarak gömülü sistemler ve istemciler için tasarlanmış hafif paralel bir programlama dilidir.1 Lua, ANSI C'de2 yazılmış olduğu için çapraz platform destekli bir dildir ve nispeten basit bir C API'sine sahiptir.
Lua başlangıçta 1993 yılında özelleştirmeye olan artan talebi karşılamakta yazılım uygulamalarını genişletmek için bir dil olarak tasarlandı. Çoğu yordamsal programlama dillerinin temel olanaklarını sağlamış ancak daha karmaşık veya alana özgü özellikler dahil edilmemiştir; bunun yerine, programcının bu özellikleri uygulamasına imkân tanıyan, dilin genişletilmesi için mekanizmalar içermekteydi. Lua, genel gömülebilir bir uzantı dili olarak tasarlandığından, Lua tasarımcıları, hızını, taşınabilirliğini, genişletilebilirliğini ve geliştirilmesinde kullanım kolaylığını geliştirmeye odaklanmışlardır.
Lua 1993 yılında Rio de Janeiro Pontifical Katolik Üniversitesi'nde Bilgisayar Grafik Teknoloji Grubu (Tecgraf) üyesi olan Roberto Ierusalimschy, Luiz Henrique de Figueiredo ve Waldemar Celes tarafından Brezilya'da geliştirilmiştir.
1977'den 1992'ye kadar Brezilya, bilgisayar donanımı ve yazılımı konularında güçlü ticaret engelleri ("piyasa ihtiyatları" şeklinde tanımlanır) politikalarına sahipti. Bu ortamda Tecgraf'ın müşterileri, politik ya da finansal açıdan yurtdışından özel yazılımlar satın almaya muktedir değildi. Bu gibi nedenlerden dolayı Tecgraf, ihtiyaç duyduğu temel araçları sıfırdan sağlamaya başlamıştı.3
Lua'nın öncülleri veri tanımlama/yapılandırma dilleri olan SOL (Simple Object Language, Basit Nesne Dili) ve DEL (data-entry language, veri giriş dili) idi.4 1992-1993 yılları arasında iki farklı projeye esneklik kazandırmak için (her ikisi de Petrobras şirketindeki mühendislik uygulamaları için etkileşimli grafiksel programlardı) Tecgraf'ta bağımsız olarak geliştirilmişlerdi. SOL ve DEL'de herhangi bir akış denetim yapısı eksikliği vardı ve Petrobras, onları tam anlamıyla artan bir programlama gücüne eriştirme ihtiyacı hissetmişti.
Lua Evrimi (The Evolution of Lua) adlı çalışmada, dil yazarları şunları yazdı:5
Lua 1.0, nesne yapıcılarının, daha sonra mevcut geçerli hafif ve esnek
tarzdan biraz farklı olması nedeniyle SOL'nin veri açıklaması
sözdizimini ekleyecek şekilde tasarlanmıştı (Bu nedenle Sol "Güneş"
anlamında Portekizce kullanılan bir sözcüktü ve Lua "Ay" kelimesine
karşılık geliyordu). Kontrol yapıları için Lua
Syntax yapıları çoğunlukla
Modula'dan alındı (if
, while
,
repeat
/until
), aynı zamanda CLU'dan (çoklu atamalar ve işlev
çağrılarından çoklu geri dönüş, örnek parametrelerine veya açık
işaretçilere daha basit değişik bir yorum olarak) etki etmişti,
C++ ("yerel bir değişkenin yalnızca ihtiyaç duyduğumuz
yerde alenileşmesine izin veren düzgün bir fikir"6)
SNOBOL ve AWK
(ilişkilendirilebilir diziler). Dobb's Journal'da yayınlanan bir
makalede, Lua'nın yaratıcıları ayrıca LISP ve Scheme'in tek, her yerde
bulunan veri yapısı işleyişi (liste) ile Lua'nın temel veri yapısı
olarak tabloyu geliştirme kararı üzerinde büyük bir etkiye sahip
olduklarını belirtmektedir.
Lua semantiği, özellikle anonim işlevlerin ve tam sözlü skopingin uygulanması ile zamanla Scheme tarafından gittikçe artan bir şekilde etkilenmiştir. Birçok özellik yeni Lua sürümlerine eklendi.
Sürüm 5.0'dan önceki Lua sürümleri, BSD lisansına benzer bir lisansla yayınlandı. Lua, 5.0 sürümünden itibaren MIT Lisansı ile lisanslanmıştır. Her ikisi de izin verilen özgür yazılım lisanslarıdır ve hemen hemen çoğu konuda aynıdır.
Orijinal kaynak: lua. Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page