Luau, varian pengecekan tipe dari bahasa Lua menjadi open source

Baru-baru ini rilis versi pertama diumumkan independen dari bahasa pemrograman luau, yang berlanjut dengan pengembangan Lua dan juga kompatibel dengan versi Lua 5.1 sebelumnya.

Bahasa Luau adalah dirancang terutama untuk menyematkan mesin skrip dalam aplikasi dan bertujuan untuk mencapai kinerja tinggi dan konsumsi sumber daya yang rendah. Kode proyek ditulis dalam C ++ dan terbuka di bawah lisensi MIT.

Luau memperluas Lua dengan kemampuan pengecekan tipe dan beberapa build sintaksis baru seperti string literal. Bahasa ini kompatibel dengan versi Lua 5.1 sebelumnya dan sebagian dengan versi yang lebih baru. Lua Runtime API didukung, memungkinkan Luau untuk digunakan dengan kode dan tautan yang sudah ada sebelumnya.

Mulai hari ini, Luau tidak lagi menjadi bagian tak terpisahkan dari platform Roblox; adalah bahasa sumber terbuka yang independen.

Runtime bahasa didasarkan pada kode runtime Lua 5.1 yang sangat direvisi, tetapi interpreter telah ditulis ulang sepenuhnya. Pengembangan melibatkan beberapa teknik optimasi baru yang memungkinkan untuk mencapai kinerja yang lebih tinggi dibandingkan dengan Lua.

Ketika Roblox dibuat 15 tahun yang lalu, kami memilih Lua sebagai bahasa pemrograman. Lua kecil, cepat, mudah diintegrasikan dan dipelajari, dan membuka kemungkinan besar bagi pengembang kami.

Sebagian besar Roblox dibangun di atas Lua, termasuk ratusan ribu baris kode yang dikembangkan secara internal yang mendukung aplikasi Roblox dan Roblox Studio hingga hari ini, dan jutaan pengalaman yang telah dibuat oleh pengembang. Bagi banyak dari mereka, itu adalah bahasa pemrograman pertama yang mereka pelajari.

Proyek ini dikembangkan oleh Roblox dan digunakan dalam kode platform game dan aplikasi khusus dari perusahaan ini, termasuk penerbit Roblox Studio. Awalnya, Luau dikembangkan secara tertutup, tetapi pada akhirnya diputuskan untuk mengalihkannya ke kategori proyek terbuka untuk pengembangan bersama lebih lanjut dengan partisipasi masyarakat.

Fitur Utama:

  • Sistem tipe sekuensial, yang menempati posisi perantara antara penulisan dinamis dan statis. Luau memungkinkan penulisan statis sesuai kebutuhan dengan menentukan jenis informasi melalui anotasi khusus.
  • NS tipe bawaan "Apa saja", "nihil", "boolean", "angka", "string" dan "utas". Pada saat yang sama, kemampuan untuk menggunakan pengetikan dinamis tanpa secara eksplisit mendefinisikan jenis variabel dan fungsi juga dipertahankan.
  • Dukungan untuk string literal (seperti dalam Lua 5.3)
  • Dukungan untuk ekspresi "lanjutkan", selain kata kunci yang ada "break", untuk melompat ke iterasi baru dari loop.
  • Dukungan untuk operator penugasan majemuk
  • Dukungan untuk penggunaan blok bersyarat "If-then-else" dalam bentuk ekspresi yang mengembalikan nilai yang dihitung selama eksekusi blok. Anda dapat menentukan jumlah pernyataan elseif yang berubah-ubah dalam sebuah blok.
  • Kehadiran mode kotak pasir yang memungkinkan Anda menjalankan kode yang tidak tepercaya. Fungsi ini dapat digunakan untuk mengatur kode Anda sendiri dan kode yang ditulis oleh pengembang lain, misalnya perpustakaan pihak ketiga yang tidak dapat dijamin, untuk berjalan berdampingan.
  • Batasan pustaka standar dari mana fungsi yang berpotensi menimbulkan masalah keamanan telah dihapus. Misalnya, perpustakaan "io" (akses ke file dan proses startup), "paket" (akses ke file dan memuat modul), "os" (fungsi untuk mengakses file dan mengubah variabel lingkungan telah dihapus), "Debug" (tidak aman penanganan memori), "dofile" dan "loadfile" (akses sistem file).
  • Menyediakan alat untuk analisis kode statis, deteksi kesalahan (Linter) dan memvalidasi penggunaan jenis.
  • penganalisis, penerjemah kode byte dan kompiler berpemilik kinerja tinggi.
  • Luau belum mendukung kompilasi JIT, tetapi dikatakan bahwa interpreter Luau cukup sebanding dalam kinerjanya dengan LuaJIT dalam beberapa situasi.

Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.