Bahasa Pemrograman

Lua

Jalur penguasaan bahasa Lua dari dasar hingga penyematan: table dan metatable, Lua idiomatik, pustaka standar, serta pembangunan proyek lapisan skrip tersemat.

Jalur ini mengajarkan bahasa Lua secara utuh, dari fondasi bahasa, table sebagai satu-satunya struktur data, metatable yang menggerakkan pola OOP, Lua idiomatik dengan closure dan coroutine, pustaka standar, hingga model penyematan pada aplikasi host. Pengerjaan ditutup dengan proyek mesin konfigurasi tersemat yang mencakup arsitektur, permukaan error, pengujian, dan dokumentasi. Prasyarat lingkungannya hanya penerjemah Lua 5.4 dan terminal, dan setiap contoh dijalankan dengan penerjemah agar keluarannya dapat direproduksi.

Mengenal Lua 3 pelajaran

Modul pembuka: definisi Lua sebagai bahasa skrip yang dapat disematkan, penyiapan lingkungan, dan skrip pertama.

  1. Apa Itu Lua?Definisi Lua sebagai bahasa skrip tersemat, tempat bahasa ini berjalan, dan filosofi desainnya.
  2. PenyiapanMemasang penerjemah Lua mandiri, memilih editor, dan memastikan penerjemah siap digunakan.
  3. Skrip PertamaMenulis dan menjalankan program Lua pertama dengan print, komentar, dan eksekusi berkas.
Fondasi Bahasa 5 pelajaran

Modul inti bahasa: nilai dan tipe, variabel dan cakupan, alur kendali, fungsi, serta table sebagai satu-satunya struktur data.

  1. Nilai dan TipeDelapan tipe dasar Lua, pengetikan dinamis, dan peran khusus nilai nil.
  2. Variabel dan CakupanPerbedaan variabel global dan lokal beserta aturan cakupan blok di Lua.
  3. Alur KendaliPernyataan if, while, repeat, for numerik, dan for generik dalam Lua.
  4. FungsiDefinisi fungsi, nilai balik ganda, varargs, dan fungsi sebagai nilai kelas satu.
  5. TableKonstruktor table, cara akses elemen, dan table bersarang sebagai satu-satunya struktur data Lua.
Table dan OOP 4 pelajaran

Pendalaman table: array versus dictionary, pengindeksan berbasis 1, metatable, pola OOP, dan pewarisan berbasis __index.

  1. Array vs DictionaryDua wajah table Lua, pengindeksan berbasis 1, dan kehati-hatian pada operator #.
  2. MetatableMekanisme metatable dan pengaitan perilaku baru pada table melalui __index dan metamethod lainnya.
  3. Pola OOPPembangunan objek dengan sintaks titik dua, self, dan template kelas Lua.
  4. PewarisanPerantaian __index untuk pewarisan antarkelas beserta idiom klasiknya.
Lua Idiomatik 3 pelajaran

Pola penulisan Lua yang idiomatik: closure dan protokol iterator, coroutine, serta penanganan error dengan pcall dan xpcall.

  1. Closure dan IteratorClosure yang menyimpan state dan protokol iterator untuk perulangan for generik.
  2. CoroutineKonkurensi kooperatif dengan coroutine beserta pola produsen dan konsumen.
  3. Penanganan ErrorPelaksanaan terlindungi dengan pcall dan xpcall beserta bentuk objek error di Lua.
Pustaka Standar 3 pelajaran

Pustaka standar Lua: pustaka string beserta pattern-nya, pustaka table dan math, serta io dan os beserta batasannya.

  1. Pustaka StringPola pencocokan Lua yang berbeda dari regex, fungsi format, dan gsub.
  2. Pustaka Table dan MathFungsi table.insert, table.remove, table.sort, dan fungsi math yang esensial.
  3. Pustaka io dan osI/O berkas, fungsi os.time dan os.date, serta batasan pustaka pada lingkungan tersemat.

Model penyematan Lua pada aplikasi host: alasan penyematan, konsep stack API C, pemanggilan Lua dari C, dan peta ekosistem.

  1. Mengapa Menyematkan LuaModel skrip pada aplikasi host dan alasan Lua dipilih sebagai bahasa penyematan.
  2. Konsep StackMekanisme pertukaran nilai antara C dan Lua melalui stack pada API C.
  3. Memanggil Lua dari CSkrip konfigurasi, callback, dan pengenalan sandboxing dari sisi host C.
  4. Peta EkosistemPenyebaran Lua pada LÖVE 2D, Neovim, skrip Redis, LuaJIT, dan Luau.
Pengerjaan Proyek 7 pelajaran

Proyek terpandu: membangun mesin konfigurasi tersemat utuh, dari arsitektur, implementasi inti, hingga pengujian dan dokumentasi.

  1. Pemilihan ProyekPenentuan bentuk proyek akhir dan lingkup mesin konfigurasi tersemat.
  2. ArsitekturPerancangan batas antara aplikasi host dan lapisan skrip Lua.
  3. Implementasi IntiPembangunan loop inti mesin konfigurasi yang berfungsi sebagai fondasi proyek.
  4. Lapisan Berbasis DataPenggunaan table sebagai konfigurasi dan konten proyek.
  5. Permukaan ErrorStrategi penanganan kegagalan di dalam sandbox skrip proyek.
  6. PengujianAsersi dan test harness sederhana untuk kode Lua proyek.
  7. DokumentasiPenulisan dokumentasi API untuk lapisan skrip yang dihasilkan.