İçeriğe atla

LuaJIT

LuaJIT
LuaJIT derleyici projesi için kullanılan logo
LuaJIT web sitesinde yer alan logo.
LuaJIT REPL Windows 10 üzerinde çalışıyor
Orijinal yazar(lar)Mike Pall
Güncel sürüm2.0.5 (daha sonra v2.1.ROLLING de güncellenir, örneğin 2023'te) / 1 Mayıs 2017 (7 yıl önce) (2017-05-01)
Programlama diliC, Lua
İşletim sistemiUnix-benzeri, MacOS, Windows, iOS, Android, PlayStation
Platformx86, X86-64, PowerPC, ARM, MIPS[1]
TürJust-in-time derleyici
LisansMIT Lisansı[2]
Resmî sitesiluajit.org
Kod deposugithub.com/LuaJIT/LuaJIT

LuaJIT, Lua programlama dili için üretilmiş bir JIT derleyicidir.[3]

Tarihçe

LuaJIT projesi 2005 yılında geliştirici Mike Pall tarafından başlatılmış ve MIT açık kaynak kodlu lisansıyla yayımlanmıştır. Derleyicinin ikinci büyük sürümü, 2.0.0, derleyiciye önemli performans artışları sağladı.[4] En son sürüm, 2.0.5, 2017'de yayımlandı.

Performans

LuaJIT diğer Lua çalıştırma ortamlarına göre genel olarak en hızlısıdır.[5] Ayrıca, bir dinamik programlama dili için yapılmış en hızlı implementasyon olduğu da bazılarınca kabul edilmektedir.[6][7]

Kaynakça

  1. ^ "LuaJIT". LuaJIT. 10 Şubat 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Şubat 2022. 
  2. ^ "LuaJIT/COPYRIGHT at v2.1 · LuaJIT/LuaJIT". GitHub. 7 Ocak 2022. 17 Kasım 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Aralık 2023. 
  3. ^ "The LuaJIT Project". luajit.org. 8 Aralık 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Aralık 2023. 
  4. ^ "Re: [ANN] llvm-lua 1.0". lua-users.org. 9 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Aralık 2023. 
  5. ^ "LuaJIT Performance". staff.fnwi.uva.nl. 21 Kasım 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Aralık 2023. 
  6. ^ "Laurence Tratt: The Impact of Meta-Tracing on VM Design and Implementation". tratt.net. 17 Kasım 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Aralık 2023. 
  7. ^ D'Andrea, Dario (2019). Behavioural Analysis of Tracing JIT Compiler Embedded in the Methodical Accelerator Design Software (Tez). Naples U. 17 Kasım 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Aralık 2023. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">GNU Compiler Collection</span>

GNU Compiler Collection, GNU Projesi tarafından üretilen ve çeşitli programlama dillerini destekleyen bir derleyici sistemidir. GCC, GNU araç zincirinin önemli bir parçasıdır. Henüz tamamlanmamış GNU işletim sisteminin resmî derleyicisi olmanın yanı sıra, diğer birçok modern Unix benzeri işletim sistemleri tarafından standart derleyici olarak benimsenmiştir. GCC, çok çeşitli işlemci mimarilerine taşınmış; ticari, perakende ve kapalı kaynak yazılım geliştirme ortamlarında yaygın bir araç olarak konuşlanmıştır. Windows'ta GCC kodlarını derlemek ve çalıştırmak için Cygwin, MinGW ve Tiny C Derleyici (TCC) gibi derleyiciler kullanılabilir.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

<span class="mw-page-title-main">KDevelop</span>

KDevelop Linux ve diğer Unix benzeri işletim sistemleri için özgür bir tümleşik geliştirme ortamıdır (T.G.O). KDevelop bir derleyici içermez. Çalıştırılabilir kod üretebilmek için GCC veya istenirse başka bir derleyici kullanır. Şu anki 3.5 sürümü Ada, Bash, C, C++, Fortran, Java, Pascal, Perl, PHP, Python, Ruby ve SQL başta olmak üzere birçok programlama dilini destekler.

Ruby, nesneye yönelik, dinamik, reflektif ve esnek bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.

<span class="mw-page-title-main">SQLite</span>

SQLite, dünyada en çok dağıtılan ve tavsiye edilen kaynak kodları halka açık, tamamen C/C++ programlama dilleriyle geliştirilmiş sunucu yazılımı ve yapılandırma gereksinimi olmayan, işlemsel ve ilişkisel bir SQL veritabanı motorudur.

<span class="mw-page-title-main">Go (programlama dili)</span> programlama dili

Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal tip sistemini destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.

<span class="mw-page-title-main">Grace Hopper</span>

Grace Brewster Murray Hopper, Amerikalı bir bilgisayar bilimcisi ve Birleşik Devletler Donanması arka amiraliydi. Harvard Mark I bilgisayarının ilk programcılarından biri, ilk bağlayıcılardan birini icat eden bilgisayar programcılığının öncüsüydü. Hopper, makineden bağımsız programlama dilleri teorisini geliştiren ilk kişiydi ve bu teoriyi kullanarak oluşturduğu FLOW-MATIC programlama dili daha sonra, bugün halâ kullanılmakta olan erken bir üst düzey programlama dili olan COBOL'u oluşturmak için genişletildi.

Javac Oracle Corporation tarafından sağlanan Java Geliştirme Kiti'nda (JDK) bulunan Java derleyicisidir.

<span class="mw-page-title-main">MATLAB</span>

MATLAB, çok paradigmalı sayısal hesaplama yazılımı ve dördüncü nesil programlama dilidir. Özel mülk bir programlama dili olan MATLAB, MathWorks tarafından geliştirilmektedir. MATLAB kullanıcıya, matris işleme, fonksiyon ve veri çizme, algoritma uygulama, kullanıcı arayüzü oluşturma, C, C++, Java ve Fortran gibi diğer dillerde yazılmış programlarla arabağlama imkânı tanır.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

<span class="mw-page-title-main">Lua</span> basit yazılımlar için kullanılan programlama dili

Lua, ağırlıklı olarak gömülü sistemler ve istemciler için tasarlanmış hafif paralel bir programlama dilidir. Lua, ANSI C'de yazılmış olduğu için çapraz platform destekli bir dildir ve nispeten basit bir C API'sine sahiptir.

JIT ; bilgisayar kodunu çalıştırmanın bir yoludur. Yürütülmeden önce bir program yürütülürken çalışma zamanında derleyici içerir. Genellikle bu, kaynak kodu ve daha sonradan makine diline bytecode kod çevirisini içerir ve bu kod doğrudan doğruya çalıştırılır. Bir JIT derleyicisi uygulayan bir sistem genellikle yürütülen kodu sürekli olarak analiz eder, daha sonra derleme veya tekrar derlemeden elde edilen hızlanmanın bu kodun derlenmesinin yükünden daha ağır olacağı kod bölümlerini tanımlar.

AOT derlemesi C veya C++ gibi daha üst düzey bir programlama dili, Java bytecode veya .NET Framework Ortak Ara Dil kodu gibi bir ara temsilciliğin yerli bir makine diline derleme eylemidir. Sonuçta ortaya çıkan ikili dosya yerel olarak çalıştırılabilir.

<span class="mw-page-title-main">Nim (programlama dili)</span> Programlama dili

Nim, Andreas Rumpf tarafından tasarlanan ve geliştirilen, genel amaçlı, çok paradigmalı, statik tipli, derlenen bir programlama dilidir. Derleme zamanı kod sentezi, cebirsel veri türleri, mesaj iletme gibi çeşitli özellikler ile meta programlama, işlevsel, prosedürel ve nesne yönelimli programlama stillerini desteklemenin yanı sıra C / C++ dillerine yabancı fonksiyon arayüzü katmanı sunarak ve C, C++, Objective-C ve JavaScript dillerine derlenerek "verimli, etkileyici ve zarif", olmayı hedefleyen bir tasarıma sahiptir.

IronPython, Python programlama dilinin .NET Framework ve Mono'yu hedefleyen bir gerçeklemesidir. Proje Jim Hugunin tarafından başlatılmış, Hugunin 5 Eylül 2006'da yayınlanan 1.0 sürümüne kadar aktif olarak katkıda bulunmuştur. IronPython 2.0 10 Aralık 2008'de piyasaya sürüldü. 1.0 sürümünden sonra, 2.7 Beta 1 sürümüne kadar Microsoft'ta küçük bir ekip tarafından geliştirildi. Hugunin'in Google'da çalışmaya başlamasının ardından Microsoft, IronPython'u geliştirmeyi 2010 yılının sonlarında sonlandırdı. Proje şu anda GitHub'da bir grup gönüllü tarafından yürütülmektedir. Ücretsiz ve açık kaynaklı bir yazılımdır ve Microsoft Visual Studio IDE için ücretsiz ve açık kaynaklı bir uzantı olan Visual Studio için Python Tools (PTVS) ile uygulanabilir.

<span class="mw-page-title-main">Awesome (pencere yöneticisi)</span> X Pencere Sistemi için pencere yöneticisi

AwesomeWM, C ve Lua programlama dillerinde geliştirilmiş X Pencere Sistemi için tasarlanmış dinamik bir pencere yöneticisidir. Lua, pencere yöneticisini yapılandırmak ve genişletmek için de kullanılır. Gelişimi bir dwm çatalı olarak başladı. Son derece küçük ve hızlı olmayı, ancak kapsamlı bir şekilde özelleştirilebilir olmayı hedefliyor. Kullanıcının klavyeyi kullanarak pencereleri yönetmesini mümkün kılar.