Versi baharu bahasa pengaturcaraan Nim 0.20

mengambil tempat keluaran bahasa pengaturcaraan sistem Nim 0.20.0. Bahasa ini menggunakan penaipan statik dan dicipta dengan Pascal, C++, Python dan Lisp dalam fikiran. Kod sumber Nim disusun menjadi perwakilan C, C++ atau JavaScript. Selepas itu, kod C/C++ yang terhasil disusun ke dalam fail boleh laku menggunakan mana-mana pengkompil yang tersedia (clang, gcc, icc, Visual C++), yang membolehkan anda mencapai prestasi hampir dengan C, jika anda tidak mengambil kira kos menjalankan pemungut sampah. Sama seperti Python, Nim menggunakan lekukan sebagai pembatas blok. Alat dan keupayaan pengaturcaraan meta untuk mencipta bahasa khusus domain (DSL) disokong. Kod projek dibekalkan di bawah lesen MIT.

Keluaran Nim 0.20 boleh dianggap sebagai calon untuk keluaran stabil 1.0 yang pertama, menggabungkan beberapa perubahan pemecah kebolehoperasian yang diperlukan untuk membentuk cawangan stabil pertama yang akan melaksanakan keadaan bahasa. Versi 1.0 disebut-sebut sebagai keluaran sokongan jangka panjang yang stabil yang akan dijamin untuk mengekalkan keserasian ke belakang dalam bahagian bahasa yang stabil. Secara berasingan, pengkompil juga akan mempunyai mod percubaan yang tersedia, di mana ciri baharu akan dibangunkan yang mungkin melanggar keserasian ke belakang.

Antara perubahan yang dicadangkan dalam Nim 0.20 ialah:

  • "Tidak" kini sentiasa menjadi operator unari, i.e. ungkapan seperti "menegaskan (bukan a)" kini tidak dibenarkan dan hanya "menegaskan bukan a" dibenarkan;
  • Mendayakan semakan ketat untuk penukaran integer dan nombor nyata pada peringkat penyusunan, i.e. ungkapan "const b = uint16(-1)" kini akan mengakibatkan ralat, kerana -1 tidak boleh ditukar kepada jenis integer yang tidak ditandatangani;
  • Membongkar tupel untuk pemalar dan pembolehubah gelung disediakan.
    Sebagai contoh, kini anda boleh menggunakan tugasan seperti 'const (d, e) = (7, "lapan")" dan "untuk (x, y) dalam f";

  • Menyediakan permulaan lalai cincang dan jadual. Sebagai contoh, selepas mengisytiharkan "var s: HashSet[int]" anda boleh segera melaksanakan "s.incl(5)", yang sebelum ini membawa kepada ralat;
  • Maklumat ralat yang dipertingkatkan untuk masalah yang berkaitan dengan pengendali "kes" dan indeks tatasusunan di luar sempadan;
  • Mengubah panjang jadual semasa lelaran adalah dilarang.

Sumber: opennet.ru

Tambah komen