Lua
Geçmiş

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ı.
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. 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ı:
| 0 | 1 | 2 |
| --- | --- | --- |
| “ | 1993'te, gerçek şu ki, Tcl, açıkça uygulamalara gömülmek için tasarlanmıştı. Bununla birlikte, Tcl, bilmediğiniz sözdizimlerine sahipti, veri açıklamaları için iyi bir destek sağlamıyor ve yalnızca Unix platformlarında çalışıyordu. Düşmanca sözdizimi nedeniyle LISP'yi veya Sheme'i düşünmedik. Python henüz emekleme aşamasındaydı. Tecgraf'da hüküm süren ücretsiz, kendi başımıza ortamımızda, kendi betik dilimizi geliştirmeye çalışmamız doğaldı ... Dilin pek çok olası kullanıcısı deneyimli programcılar olmadığından dil, şifresiz sözdizimi ve anlambiliminden kaçınmalıydı. Tecgraf'ın müşterileri çok çeşitli bilgisayar yapıları derlemelerine sahip olduğundan, yeni dilin uygulanması oldukça taşınabilir olmalıydı. Son olarak, diğer Tecgraf ürünlerinin bir betik dili gömmek zorunda kalmasını beklediğimizden, yeni dil SOL örneğini takip etmeli ve C API'li bir kütüphane olarak sağlanmalıydı. | „ |

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") 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.