Genişletilebilir Gömülebilir Dil - Extensible Embeddable Language

YILANBALIĞI
ParadigmaÇoklu paradigma: komut dosyası oluşturma, zorunlu, işlevsel, nesne odaklı
Tarafından tasarlandıDavid Olofson
İlk ortaya çıktı2005; 15 yıl önce (2005)
Kararlı sürüm
0.3.6 / 4 Şubat 2014; 6 yıl önce (2014-02-04)
Yazma disipliniDinamik
işletim sistemiÇapraz platform
LisansGNU Daha Az Genel Kamu Lisansı
Dosya adı uzantılarıyılanbalığı
İnternet sitesiyılanbalığı.olofson.ağ
Tarafından etkilenmiş
Lua, C, Pascal

Genişletilebilir Gömülebilir Dil (YILANBALIĞI), David Olofson tarafından geliştirilmekte olan bir betik ve programlama dilidir. EEL için tasarlanmıştır komut dosyası oluşturma içinde gerçek zamanlı sistemler müzikal sentezleyiciler ve endüstriyel kontrol sistemleri gibi kHz aralığında döngü hızları ile, ancak aynı zamanda bir platform bağımsız genel amaç Programlama dili.

Felsefe

Dil tasarımına gelince, genel fikir güç, kullanım kolaylığı ve güvenlik arasında pratik bir denge kurmaktır. Amaç, aşırı sözcük sözdizimine veya sınırlı işlevselliğe başvurmadan birçok tipik programlama hatasından kaçınmaya yardımcı olmaktır.

Tarih

EEL'nin ilk enkarnasyonu, yapılandırılmış ses tanımları için basit bir ayrıştırıcı biçimindeydi ve ses motorunda kullanılmıştır. Ücretsiz ve Açık Kaynak oyun Kobo Deluxe, bir SDL limanı X11 oyun XKobo. Bu, çok sınırlı akış kontrolü ve mevcut sürümlerden oldukça farklı bir sözdizimi olan basit bir yorumlayıcıydı. EEL'in bu ilk şubesi ilk olarak 2002'de piyasaya sürüldü ve hala 0.5.1 sürümünden itibaren Kobo Deluxe'te kullanılmaktadır.

Aralık 2003'te, EEL, tek başına bir projeye bölündü ve gerçek zamanlı komut dosyası yazımında kullanılmak üzere büyük bir yeniden yazmaya tabi tutuldu. gömülü reoloji uygulama. Bu geçiş nereden çevirmen -e derleyici /VM yapıldı ve gerçek programlama dili EEL hayata geçirildi. İlk resmi yayın Ocak 2005'te yapıldı. O zamandan beri, EEL, çoğunlukla yazarının kişisel ve profesyonel ihtiyaçları doğrultusunda yavaş yavaş gelişti.

Özellikleri

Genel

Dil, kesinlikle herhangi bir belirli programlama paradigması ama destekler nesne yönelimli programlama veya daha spesifik olarak, prototip tabanlı programlama minimum bir dizi aracılığıyla sözdizimi şekeri özellikleri. Gibi diğer paradigmalar işlevsel, modüler ve metaprogramlama ayrıca desteklenmektedir.

Kaçınmanın bir sonucu olarak işaretçiler ve tamamen yönetilen yapılandırılmış veri türleri sağlayan EEL, EEL programlarının sanal makineyi veya ana uygulamayı çökertememesi açısından "güvenlidir".

Öne Çıkanlar

Örnek kod

Klasik merhaba dünya programı şu şekilde yazılabilir:

ihracat işlevi ana {    print ("Merhaba, dünya!"); dönüş 0;}

Aşağıdaki bir örnektir. yinelemeli işlev:

ihracat işlevi ana {    print ("Özyineleme testi 1:"); prosedür yineleme (arg) {        baskı ("arg =", arg, ""); Eğer arg yineleme (arg - 1); }        yineleme (10); print ("Özyineleme testi 2; Karşılıklı Özyineleme:"); prosedür mrecurse2 (bağımsız değişken); prosedür mrecurse1 (bağımsız değişken) {        baskı ("arg =", arg, ""); Eğer arg mrecurse2 (arg); }        prosedür mrecurse2 (bağımsız değişken) {        mrecurse1 (arg - 1); }; mrecurse1 (10); print ("Özyineleme testi 2; Fonksiyon Referanslı Karşılıklı Özyineleme:"); prosedür mrrecurse1 (arg, fn) {        baskı ("arg =", arg, ""); Eğer arg fn (arg, fn); }        yerel mrr2 = prosedür (arg, fn) {        mrrecurse1 (arg - 1, fn); }; mrrecurse1 (10, mrr2); print (Yineleme testleri yapıldı.); dönüş 0;}

Dahili

EEL kaynak kodu şu şekilde derlenir: bayt kodu bir gelenek için VM, talimat sayısını ve dolayısıyla ek yükü en aza indirmek için tasarlanmış nispeten yüksek seviyeli bir komut setine sahiptir. EEL VM, kayıt tabanlı ve "yığınsız", çünkü C çağrı yığını VM bağlamlarını yönetmek için.

Temel bellek yönetimi yöntemi, eşzamanlı çöp toplamaya gerek kalmadan deterministik zamanlama ile otomatik bellek yönetimine izin veren referans saymadır.

VM, ifadeler ve benzerleri içinde oluşturulan ara nesneleri takip etmek için "limbo listeleri" kullanır, bu da istisna işlemeyi büyük ölçüde basitleştirir ve her bir işlemde aktif referans sayma ihtiyacını ortadan kaldırır.

Başvurular

Kobo Deluxe

Kobo Deluxe bir EEL uygulamasıdır.[1]

Referanslar

  1. ^ 2013'ün En İyisi: 31 Yıl Sonra - Commodore 64'te Bağımsız Oyun James Monkman tarafından indiegames.com'da (20 Aralık 2013)

Dış bağlantılar