Bahasa Pemrograman

Nim

Jalur pemrograman Nim dari sintaks dasar, manajemen memori ORC, metaprogramming, hingga merilis biner untuk beragam backend.

Nim adalah bahasa pemrograman yang dikompilasi menjadi biner native melalui C, C++, atau JavaScript dengan sintaks yang mengadopsi indentasi signifikan. Jalur ini membahas sintaks inti, sistem tipe, manajemen memori ARC dan ORC, metaprogramming, interop, konkurensi, hingga pengemasan dan rilis proyek. Lingkungan yang diperlukan berupa Nim 2.4, compiler C, dan terminal.

Mengenal Nim 3 pelajaran

Modul pembuka: posisi Nim di antara bahasa lain, penyiapan lingkungan kerja, dan pengenalan rantai alatnya.

  1. Apa itu Nim ?Pengenalan Nim sebagai bahasa terkompilasi dengan sintaks mirip Python dan mekanisme kompilasinya melalui C.
  2. PenyiapanMemasang Nim 2.4 menggunakan choosenim dan menyiapkan editor beserta dukungannya.
  3. Rantai alat NimPengenalan perintah utama Nim: compile, run, doc, nimpretty, serta pengelola paket nimble.
Bahasa 5 pelajaran

Modul sintaks inti: indentasi signifikan, disiplin mutasi variabel, proc, alur kendali, dan wadah data dasar.

  1. Indentasi dan pengenalAturan whitespace signifikan serta gaya penamaan pengenal yang tidak peka terhadap kapitalisasi.
  2. let, var, dan constDisiplin mutasi nilai melalui let dan var serta konstanta waktu kompilasi dengan const.
  3. ProcsMendefinisikan proc dengan nilai kembalian result, parameter bernama, parameter bawaan, dan parameter var.
  4. Alur kendaliPercabangan if dan case, perulangan while, serta perulangan for dengan iterator.
  5. String, seq, dan arrayTiga wadah inti Nim beserta operasi slicing pada masing-masingnya.
Tipe dan data 5 pelajaran

Modul sistem tipe: objek bernilai dan ref, case objects, distinct types, generics, serta enum dan set.

  1. Objek dan refObjek bernilai dengan semantik salin, ref di heap, dan tuple sebagai struktur ringkas.
  2. case objectsObjek bervarian sebagai union terdiskriminasi untuk memodelkan tipe data aljabar.
  3. distinct typesPembuatan tipe baru dari tipe dasar yang mencegah pertukaran nilai dengan satuan berbeda.
  4. GenericsProc dan tipe parametrik beserta inferensi tipe pada waktu kompilasi.
  5. Enum dan setTipe enum ordinal dan bitset set[T] untuk operasi himpunan yang efisien.
Manajemen memori 4 pelajaran

Modul model memori: ARC dengan semantik move, ORC sebagai pengelola bawaan, alternatif refc, dan praktik debugging memori.

  1. ARCPenghitungan referensi deterministik dengan semantik move sebagai dasar manajemen memori Nim.
  2. ORCPengelola memori bawaan yang melengkapi ARC dengan pengumpulan siklus referensi.
  3. refc dan alternatifnyaSakelar --mm beserta pengenalan kolektor warisan refc dan pilihan pengelola lainnya.
  4. Debugging memoriAlat pemeriksa kebocoran memori dan kebiasaan desain yang peka terhadap siklus referensi.

Modul organisasi kode dan pustaka standar: semantik import, tur modul unggulan, JSON, dan IO asinkron.

  1. Modul dan importSemantik import, export, from, dan include dalam mengorganisasi kode Nim.
  2. Tur stdlibPerkenalan modul pustaka standar yang paling sering digunakan: strutils, sequtils, tables, os, dan times.
  3. JSON dan serialisasiModul json untuk parsing dan serialisasi data serta marshalling objek.
  4. async dan awaitIO asinkron dengan Future dan event loop untuk operasi jaringan yang efisien.
Metaprogramming 4 pelajaran

Modul kekuatan khas Nim: template, makro, perangkat konstruksi AST, dan eksekusi kode pada waktu kompilasi.

  1. TemplateAbstraksi sintaksis berbiaya nol yang diperluas secara inline pada waktu kompilasi.
  2. MakroKonstruksi dan inspeksi AST untuk menghasilkan kode pada waktu kompilasi.
  3. Perangkat makroNimNode, parseStmt, dan blok quote do sebagai perangkat penulisan makro.
  4. Eksekusi waktu kompilasiKonstanta const, pernyataan when, dan parameter static yang dievaluasi saat kompilasi.
Interop dan backend 3 pelajaran

Modul integrasi: binding ke pustaka C, kompilasi dengan backend C++, dan penargetan backend JavaScript.

  1. Interop CMembuat binding ke pustaka C dengan importc, pencocokan tipe, dan callback.
  2. Backend C++Kompilasi Nim menjadi C++ dengan nim cpp dan penautannya dengan kode C++.
  3. Backend JavaScriptMengompilasi Nim ke JavaScript, mengakses DOM, dan integrasinya dengan ekosistem npm.
Konkurensi 3 pelajaran

Modul eksekusi paralel: thread, channel untuk komunikasi antar-thread, dan anotasi gcsafe.

  1. ThreadPeluncuran thread dengan spawn, penungguan joinThread, dan proc khusus thread.
  2. ChannelPengiriman pesan bertipe yang aman antar-thread melalui channel.
  3. Keamanan GCAnotasi gcsafe dan disiplin penggunaan memori bersama antar-thread.

Modul mutu dan distribusi: unittest dan testament, paket Nimble, perkakas pengembang, dan rilis biner.

  1. unittest dan testamentMenulis blok uji dengan unittest dan menjalankannya lewat runner testament.
  2. Paket NimbleBerkas .nimble, manajemen dependensi, dan publikasi paket.
  3. Perkakas pengembangAlur kerja harian dengan nimsuggest, nimpretty, dan nim doc.
  4. Merilis binerKompilasi silang dan build statis untuk mendistribusikan biner tanpa dependensi.
Pengerjaan proyek 4 pelajaran

Modul pamungkas: memilih proyek, merancangnya, membangun dengan titik pemeriksaan, dan merilisnya.

  1. Pemilihan proyekMenimbang pilihan proyek pamungkas: alat CLI, layanan web JSON, atau aplikasi browser.
  2. Desain dahuluMerancang tipe, strategi memori, dan tata letak modul sebelum menulis kode.
  3. Membangun dengan titik pemeriksaanMembangun proyek bertahap dengan tes dan dokumentasi pada setiap tahap.
  4. RilisMemublikasikan paket, membangun biner rilis, dan menyempurnakan README.