Zig (dil)

Zig
Logo.
İlk versiyonun tarihi 2015
Paradigma İşlevsel , zorunlu
Yazar Andrew Kelley
Geliştirici Andrew Kelley, Açık Kaynak
Son sürüm 0.7.1 (13.12.2020)
Yazıyor Güçlü , statik
Tarafından etkilenmiş C , C ++ , LLVM IR , Go , Rust , JavaScript
Yazılmış C ++ , Zig
İşletim sistemleri Çoklu platform
Lisans MIT lisansı
İnternet sitesi https://ziglang.org/
Dosya uzantıları .zig

Zig , Andrew Kelley tarafından tasarlanan çok yönlü , statik tipte zorunlu derlenmiş bir programlama dilidir . Dil, jenerikleri ve derleme zamanı yansımasını , çapraz derlemeyi ve manuel bellek yönetimini destekleyen "sağlamlık", "optimallik" ve "sürdürülebilirlik" için tasarlanmıştır . Dilin ana hedeflerinden biri C ile rekabet etmek (ve onu geliştirmek) ve diğerlerinin yanı sıra Rust'tan da ilham almaktır.

Zig dahil düşük seviyeli programlama için birçok özelliğe sahiptir bileşik tipleri ( yapı ) sıfır ile dolgu , tamsayılar keyfi boyutta, değişik işaretçi türleri.

Derleyici, arka uç olarak LLVM 11 kullanılarak Zig ve C ++ ile yazılmıştır ve yerel hedeflerinin birçoğunu desteklemektedir. Derleyici, MIT lisansı altında yayınlanan ücretsiz ve açık kaynaklı bir yazılımdır . Zig derleyicisi, sırasıyla "zig cc" ve "zig c ++" komutlarını kullanarak Clang'a benzer şekilde C ve C ++ 'yı derleme yeteneği sağlar . Nim programlama dili C derleyici olarak zig cc kullanımını destekler.

Örnekler

Bonjour Monde

// zig version 0.7.1 const std = @import("std"); pub fn main() !void { const stdout = std.io.getStdOut().writer(); try stdout.print("Hello, {}!\n", .{"world"}); }

Genel bağlantılı liste

fn LinkedList(comptime T: type) type { return struct { pub const Node = struct { prev: ?*Node, next: ?*Node, data: T, }; first: ?*Node, last: ?*Node, len: usize, }; } pub fn main() void { var node = LinkedList(i32).Node { .prev = null, .next = null, .data = 1234, }; var list = LinkedList(i32) { .first = &node, .last = &node, .len = 1, }; }

Notlar ve referanslar

  1. (en-US) "  Zig, C'nin tüm zarif sadeliğine, eksi kendini ayağından vurmanın tüm yollarına sahip  " , JAXenter ,Ekim 31, 2017(erişim tarihi 11 Şubat 2020 )
  2. (en-US) “  C'den bıktınız mı? Yeni programlama dili Zig daha pragmatik ve okunabilir olmayı hedefliyor  ” ,Ekim 19, 2017( 22 Nisan 2020'de erişildi )
  3. (in) Yegulalp, "  Rust devirme C diline katılacak yeni meydan okuyucu  " , InfoWorld ,Ağustos 29, 2016(erişim tarihi 11 Şubat 2020 )
  4. (en-US) "  Zig dili ve C  " , Sina Corp ,12 Temmuz 2020(erişim tarihi 12 Ağustos 2020 )
  5. (en-US) "  The Zig Programming Language  " , ziglang.org ( 11 Şubat 2020'de erişildi )
  6. (en-US) “  Mozilla'nın Gözlemevi, Zig programlama dili ve uSens'in VR / AR SDK'sı - SD Times haber özeti: Ağustos. 29, 2016  ” , SD Times ,Ağustos 29, 2016(erişim tarihi 11 Şubat 2020 )
  7. (en-US) "  The Zig Programming Language  " , ziglang.org ( 11 Şubat 2020'de erişildi )
  8. (en) Company, "  Sudo Null - IT News for You  " , SudoNull (erişim tarihi 11 Şubat 2020 )
  9. (en-US) Kelley, "  Güvensiz Zig Pas Güvensizden Daha Güvenli  " , andrewkelley.me ( 11 Şubat 2020'de erişildi )
  10. (inç) Tim Anderson 24 Nisan 2020, 9:50, "  Gitmek istiyor musunuz _ExtInt? LLVM Clang derleyicisi, özel genişlikli tamsayılar için destek ekler  ” , www.theregister.co.uk ( 24 Nisan 2020'de erişildi )
  11. (en-US) “  Documentation - The Zig Programming Language  ” , ziglang.org ( 24 Nisan 2020'de erişildi )
  12. (en-US) "  SD Times haber özeti: Visual Studio 2010 sürüm 16.3'teki C ++ 20 kavramları, IE desteğini düşürmek için Bootstrap ve Zig 0.60 yayınlandı  " , SD Times ,14 Nisan 2020(erişim tarihi 19 Nisan 2020 )
  13. (en-GB) "  Zig 1.0'a Giden Yol'a Bir Cevap  " , www.gingerbill.org ,13 Mayıs 2019(erişim tarihi 11 Şubat 2020 )
  14. (en-US) "  The Zig Programming Language  " , ziglang.org ( 11 Şubat 2020'de erişildi )
  15. (in) "  ziglang / zig  " , GitHub ( 11 Şubat 2020'de erişildi )
  16. (en-US) “  0.6.0 Sürüm Notları · The Zig Programming Language  ” , ziglang.org ( 19 Nisan 2020'de erişildi )
  17. (inç) "  'zig cc ace C derleyicisi için Destek Ekleme. yazan hessammehr · Pull Request # 13757 · nim-lang / Nim  ” , GitHub ( 19 Nisan 2020'de erişildi )

Ayrıca bakınız

İlgili Makaleler

Dış bağlantılar