حساب کاربری
​
زمان تقریبی مطالعه: 2 دقیقه
لینک کوتاه

زیگ (زبان برنامه‌نویسی)

زیگ (به انگلیسی: Zig)، یک زبان برنامه‌نویسی سیستمی دستوری، همه منظوره، سیستم نوع و کامپایل شده است که توسط اندریو کلی طراحی شده‌است. این زبان برای «نیرومندی، بهینه و نگهداری» با پشتیبانی از زمان کامپایل همگانی و پژواکی و مدیریت حافظه طراحی شده‌است. هدف اصلی این زبان بهبود زبان سی است، در حالی که از زبان راست الهام می‌گیرد. زبان برنامه‌نویسی زیگ دارای ویژگی‌های بسیاری برای برنامه‌نویسی سطح پایین است، به ویژه: ساختارهای بسته‌بندی شده (ساختارهای بدون بالشتک بین فیلدها)، اعداد صحیح با عرض دلخواه و انواع اشاره‌گرهای چندگانه.

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

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

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

فهرست

  • ۱ مثال‌ها
    • ۱.۱ برنامهٔ Hello World
    • ۱.۲ لیست پیوندی عمومی
  • ۲ جستارهای وابسته
  • ۳ منابع
  • ۴ پیوند به بیرون

مثال‌ها

برنامهٔ 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,
    };
}

جستارهای وابسته

  • سی
  • C++
  • زبان برنامه‌نویسی راست
  • زبان برنامه‌نویسی دی

منابع

  1. ↑ Kelley, Andrew. "Introduction to the Zig Programming Language". andrewkelley.me. Retrieved 8 November 2020.
  2. ↑ https://ziglang.org/download/#release-0.10.1.
  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.
  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.

پیوند به بیرون

  • وبگاه رسمی
  • زیگ در گیت هاب
  • فیلم: معرفی زیگ
  • فیلم: جاده‌ای به ۱٫۰
آخرین نظرات
کلیه حقوق این تارنما متعلق به فرا دانشنامه ویکی بین است.