زیگ (زبان برنامه‌نویسی) - ویکی‌پدیا، دانشنامهٔ آزاد

زبان برنامه‌نویسی زیگ
پارادایم‌های برنامه‌نویسیمولتی پارادایم: دستوری، همزمان، رویه‌ای، برنامه‌نویسی تابعی
طراحی شده توسطاندریو کلی
ظهوریافته در۸ فوریه ۲۰۱۶؛ ۸ سال پیش (۲۰۱۶-08}})[۱]
انتشار آزمایشی
0.12.0[۲] ویرایش در ویکی‌داده
۲۰ آوریل ۲۰۲۴؛ ۴ روز پیش (۲۰ آوریل ۲۰۲۴-خطا: زمان نامعتبر}})
سیستم نوع، strong, inferred, structural, همگانی
سیستم‌عاملنرم‌افزار چندسکویی
پروانهپروانه ام‌آی‌تی
.zig, .zir
وبگاه
متأثر از
سی، سی++, ال‌ال‌وی‌ام، گو، راست، جاوااسکریپت

زیگ (به انگلیسی: Zig)، یک زبان برنامه‌نویسی سیستمی دستوری، همه منظوره، سیستم نوع و کامپایل شده است که توسط اندریو کلی طراحی شده‌است.[۳][۴] این زبان برای «نیرومندی، بهینه و نگهداری»[۵][۶] با پشتیبانی از زمان کامپایل همگانی و پژواکی و مدیریت حافظه طراحی شده‌است.[۷] هدف اصلی این زبان بهبود زبان سی است،[۸][۹] در حالی که از زبان راست الهام می‌گیرد.[۱۰][۱۱] زبان برنامه‌نویسی زیگ دارای ویژگی‌های بسیاری برای برنامه‌نویسی سطح پایین است، به ویژه: ساختارهای بسته‌بندی شده (ساختارهای بدون بالشتک بین فیلدها)، اعداد صحیح با عرض دلخواه[۱۲] و انواع اشاره‌گرهای چندگانه.[۱۳]

کامپایلر مرحله ۱ در زیگ و C++ نوشته شده و با استفاده از LLVM 11[۱۴] به عنوان یک back-end,[۱۵][۱۶] از بسیاری از اهداف اصلی خود پشتیبانی می‌کند.[۱۷] کامپایلر تحت مجوز MIT منبع باز است.[۱۸] کامپایلر زیگ توانایی کامپایل سی و سی‌پلاس‌پلاس را مشابه کامپایلر کلنگ با دستورهای "zig cc" و "zig c++" نشان می‌دهد،[۱۹] سربرگ‌های بسیاری از جمله libc و libcxx را برای پلتفرم‌های مختلف فراهم می‌کند و به دستورات فرعی cc و c++ در زیگ اجازه می‌دهد به عنوان کامپایلر دوگانه خارج از جعبه عمل کند.[۲۰][۲۱]

توسعه زیگ توسط بنیاد نرم‌افزار، یک شرکت غیرانتفاعی با ریاست اندرو کلی تأمین می‌شود که کمک‌های مالی را دریافت می‌کند و چندین کارمند تمام وقت استخدام می‌کند.[۲۲][۲۳][۲۴]

مثال‌ها[ویرایش]

برنامهٔ Hello World[ویرایش]

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

لیست پیوندی عمومی[ویرایش]

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,     }; }  fn LinkedList(comptime T: type) type {     return struct {         pub const Node = struct {             prev: ?*Node,             next: ?*Node,             data: T,         };          first: ?*Node,         last:  ?*Node,         len:   usize,     }; } 

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. Kelley, Andrew. "Introduction to the Zig Programming Language". andrewkelley.me. Retrieved 8 November 2020.
  2. "Release 0.12.0".
  3. "Zig has all the elegant simplicity of C, minus all the ways to shoot yourself in the foot". JAXenter (به انگلیسی). 2017-10-31. Retrieved 2020-02-11.
  4. "Tired of C? New programming language Zig aims to be more pragmatic and readable" (به انگلیسی). 2017-10-19. Retrieved 2020-04-22.
  5. Yegulalp, Serdar (2016-08-29). "New challenger joins Rust to topple C language". InfoWorld (به انگلیسی). Retrieved 2020-02-11.
  6. "Zig language and C". سینا (شرکت). 2020-07-12. Retrieved 2020-08-12.
  7. "The Zig Programming Language". ziglang.org. Retrieved 2020-02-11.
  8. "Mozilla's Observatory, the Zig programming language, and uSens' VR/AR SDK—SD Times news digest: Aug. 29, 2016". SD Times (به انگلیسی). 2016-08-29. Retrieved 2020-02-11.
  9. "The Zig Programming Language". ziglang.org. Retrieved 2020-02-11.
  10. Company, Sudo Null. "Sudo Null - IT News for you". SudoNull (به انگلیسی). Retrieved 2020-02-11.
  11. Kelley, Andrew. "Unsafe Zig is Safer Than Unsafe Rust". andrewkelley.me. Retrieved 2020-02-11.
  12. Tim Anderson 24 Apr 2020 at 09:50. "Keen to go _ExtInt? LLVM Clang compiler adds support for custom width integers". www.theregister.co.uk (به انگلیسی). Retrieved 2020-04-24.
  13. "Documentation - The Zig Programming Language". ziglang.org. Retrieved 2020-04-24.
  14. "SD Times news digest: C++20 concepts in Visual Studio 2010 version 16.3, Bootstrap to drop IE support, and Zig 0.60 released". SD Times (به انگلیسی). 2020-04-14. Retrieved 2020-04-19.
  15. "A Reply to _The Road to Zig 1.0_". www.gingerbill.org (به انگلیسی). 2019-05-13. Retrieved 2020-02-11.
  16. ziglang/zig, Zig Programming Language, 2020-02-11, retrieved 2020-02-11
  17. "The Zig Programming Language". ziglang.org. Retrieved 2020-02-11.
  18. "ziglang/zig". GitHub (به انگلیسی). Retrieved 2020-02-11.
  19. "0.6.0 Release Notes · The Zig Programming Language". ziglang.org. Retrieved 2020-04-19.
  20. "'zig cc': a Powerful Drop-In Replacement for GCC/Clang - Andrew Kelley". andrewkelley.me. Retrieved 2021-05-28.
  21. "Zig Makes Go Cross Compilation Just Work". DEV Community (به انگلیسی). Retrieved 2021-05-28.
  22. "https://twitter.com/kubkon/status/1377146321136537602". Twitter (به انگلیسی). Retrieved 2021-05-28. {{cite web}}: External link in |title= (help)
  23. "Announcing the Zig Software Foundation ⚡ Zig Programming Language". ziglang.org. Retrieved 2021-05-28.
  24. "Sponsor ZSF ⚡ Zig Programming Language". ziglang.org. Retrieved 2021-05-28.

پیوند به بیرون[ویرایش]