Bahasa Pemrograman

Odin

Jalur tutorial bahasa pemrograman Odin dari program pertama hingga proyek yang dikirimkan dan diprofil: memori eksplisit, tata letak data, polimorfisme parametrik, interop C, dan grafika raylib.

Jalur ini mengajarkan bahasa pemrograman Odin dari program pertama hingga proyek yang dikirimkan dan diprofil. Odin adalah bahasa berorientasi data dengan alokator eksplisit melalui sistem context, pembersihan deterministik melalui defer, dan tata letak data yang dapat dinalar, sehingga setiap alokasi bernama dan tidak ada alur kendali tersembunyi. Materi disusun pada lini rilis dev-2026-10 dengan kejujuran pra-1.0, mencakup sistem tipe, memori, pola berorientasi data, pustaka core dan vendor, polimorfisme parametrik, interop C, grafika raylib, perkakas pengiriman, serta pengerjaan proyek. Lingkungan yang diperlukan adalah compiler Odin dev-2026-10 dengan clang sebagai linker beserta terminal.

Mengenal Odin 3 pelajaran

Modul pembuka: identitas bahasa Odin, posisinya pada fase pra-1.0, dan penyiapan lingkungan kerja.

  1. Apa itu Odin ?Bahasa berorientasi data dengan memori dan alur kendali eksplisit.
  2. Kejujuran pra-1.0Rilis dev bulanan dev-2026-10 dan versi 1.0 yang diumumkan untuk Januari 2027.
  3. PenyiapanMemasang Odin, perintah odin, dan konfigurasi editor.
Langkah pertama 5 pelajaran

Modul sintaks inti: program pertama, proc, deklarasi, alur kendali, dan pembersihan dengan defer.

  1. Hello, package mainStruktur package, proc main, serta cara build dan run.
  2. Proc dan nilai kembalian bergandaProsedur dengan hasil bernama dan pengembalian multi-nilai.
  3. Deklarasiconst, var, dan penetapan dengan inferensi tipe melalui :=
  4. Alur kendaliif, for, switch, dan blok do sebagai seluruh perangkat percabangan dan perulangan.
  5. deferPembersihan deterministik saat lingkup berakhir, tanpa exception.

Modul sistem tipe: struct beserta padding, array, slice, map, enum, bit_set, union, dan distinct.

  1. StructTata letak field, alignment, dan padding dalam memori.
  2. Array, slice, dan mapPenyimpanan tetap, dinamis, dan berkunci beserta tata letaknya.
  3. Enum dan bit_setEnum ordinal dan penyimpanan himpunan enum dengan bit_set.
  4. UnionUnion tanpa tag dan idiom union bertag yang aman.
  5. distinct dan usingPembungkus tipe distinct dan using untuk komposisi.
Memori dan alokator 5 pelajaran

Modul jantung Odin: sistem context, alokator default dan temp, disiplin make dan free, alokator kustom, serta pelacakan kebocoran.

  1. Sistem contextAlokator yang dialirkan secara implisit melalui setiap proc.
  2. Alokator default dan tempMemilih antara heap dan penyimpanan scratch temporer.
  3. make dan freeDisiplin alokasi dan pelepasan memori secara eksplisit.
  4. Alokator kustomAlokator arena dan pool yang dibangun dengan tangan.
  5. Pelacakan dan kebocoranTracking_Allocator dan pelaporan kebocoran memori dalam praktik.
Pola berorientasi data 4 pelajaran

Modul desain data: struct of arrays, iterasi ramah cache, pengukuran performa, serta pengurutan dan pencarian.

  1. Struct of arraysArray soa dan komposisi soa_zip untuk tata letak kolom.
  2. Iterasi ramah cacheTraversal row-major serta pemisahan field panas dan dingin.
  3. Mengukur, bukan mendugaPengukuran dengan timer dan pengenalan pemrofilan cache-miss.
  4. Pengurutan dan pencariancore:sort dan pencarian biner pada data yang berdampingan.
Paket dan pustaka 3 pelajaran

Modul organisasi kode: deklarasi package dan import, pustaka core, serta pustaka vendor yang dibundel compiler.

  1. Paket dan importDeklarasi package, import, dan aturan lingkupnya.
  2. Pustaka coreTur pustaka standar: collections, strings, math, os, dan time.
  3. Pustaka vendorraylib, glfw, dan stb yang dibundel bersama compiler.

Modul kode generik: substitusi parameter saat kompilasi melalui $, percabangan when, dan kontainer generik.

  1. Polimorfisme melalui $Substitusi parameter saat kompilasi ke dalam proc.
  2. Percabangan saat kompilasiKlausa when yang melakukan dispatch berdasarkan tipe parameter.
  3. Struktur data generikMembangun kontainer generik tanpa sistem template.
Interop C 2 pelajaran

Modul interop: memanggil pustaka C melalui blok foreign tanpa berkas header dan memahami detail ABI.

  1. Blok foreignMemanggil pustaka C tanpa berkas header.
  2. Detail ABIPointer, string, dan callback yang melintasi batas bahasa.
Grafika dengan raylib 3 pelajaran

Modul grafika: jendela dan game loop dengan raylib, menggambar dan tekstur, serta matematika vektor core:math.

  1. Fundamental raylibJendela, game loop, dan input dasar.
  2. Menggambar dan teksturSprite, teks, dan render target.
  3. Matematika untuk gameVektor, matriks, dan transformasi dari core:math.

Modul perkakas: odin check dan fmt, debugging dengan simbol, serta kompilasi silang dan build rilis.

  1. odin check dan fmtPemeriksaan statis dan pemformatan kanonik.
  2. DebuggingBuild debug, simbol, dan penjejakan langkah dalam debugger.
  3. Kompilasi silangPlatform target, optimasi, dan build rilis.
Pengerjaan proyek 4 pelajaran

Modul pamungkas: memilih proyek, merancang data lebih dahulu, membangun dengan titik pemeriksaan, dan optimasi akhir.

  1. Pemilihan proyekMenimbang simulasi, alat, atau game kecil sebagai proyek.
  2. Rancang data lebih dahuluStruct, kepemilikan, dan pilihan alokator ditetapkan lebih dahulu.
  3. Membangun dengan titik pemeriksaanMenjaga odin check bersih pada setiap tahap pembangunan.
  4. Optimasi dan penguatanPutaran soa, putaran alokator, dan pemrofilan pada proyek.