زیگ (زبان برنامهنویسی)
پارادایمهای برنامهنویسی | مولتی پارادایم: دستوری، همزمان، رویهای، برنامهنویسی تابعی |
---|---|
طراحی شده توسط | اندریو کلی |
ظهوریافته در | ۸ فوریه ۲۰۱۶[۱] |
انتشار آزمایشی | 0.13.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 {
std.debug.print("Hello World!\n", .{});
}
لیست پیوندی عمومی
[ویرایش]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,
};
}
جستارهای وابسته
[ویرایش]منابع
[ویرایش]- ↑ Kelley, Andrew. "Introduction to the Zig Programming Language". andrewkelley.me. Retrieved 8 November 2020.
- ↑ "Release 0.13.0".
- ↑ "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.
- ↑ "Tired of C? New programming language Zig aims to be more pragmatic and readable" (به انگلیسی). 2017-10-19. Retrieved 2020-04-22.
- ↑ Yegulalp, Serdar (2016-08-29). "New challenger joins Rust to topple C language". InfoWorld (به انگلیسی). Retrieved 2020-02-11.
- ↑ "Zig language and C". سینا (شرکت). 2020-07-12. Retrieved 2020-08-12.
- ↑ "The Zig Programming Language". ziglang.org. Retrieved 2020-02-11.
- ↑ "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.
- ↑ "The Zig Programming Language". ziglang.org. Retrieved 2020-02-11.
- ↑ Company, Sudo Null. "Sudo Null - IT News for you". SudoNull (به انگلیسی). Retrieved 2020-02-11.
- ↑ Kelley, Andrew. "Unsafe Zig is Safer Than Unsafe Rust". andrewkelley.me. Retrieved 2020-02-11.
- ↑ 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.
- ↑ "Documentation - The Zig Programming Language". ziglang.org. Retrieved 2020-04-24.
- ↑ "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.
- ↑ "A Reply to _The Road to Zig 1.0_". www.gingerbill.org (به انگلیسی). 2019-05-13. Retrieved 2020-02-11.
- ↑ ziglang/zig, Zig Programming Language, 2020-02-11, retrieved 2020-02-11
- ↑ "The Zig Programming Language". ziglang.org. Retrieved 2020-02-11.
- ↑ "ziglang/zig". GitHub (به انگلیسی). Retrieved 2020-02-11.
- ↑ "0.6.0 Release Notes · The Zig Programming Language". ziglang.org. Retrieved 2020-04-19.
- ↑ "'zig cc': a Powerful Drop-In Replacement for GCC/Clang - Andrew Kelley". andrewkelley.me. Retrieved 2021-05-28.
- ↑ "Zig Makes Go Cross Compilation Just Work". DEV Community (به انگلیسی). Retrieved 2021-05-28.
- ↑ "https://twitter.com/kubkon/status/1377146321136537602". Twitter (به انگلیسی). Retrieved 2021-05-28.
{{cite web}}
: External link in
(help)|title=
- ↑ "Announcing the Zig Software Foundation ⚡ Zig Programming Language". ziglang.org. Retrieved 2021-05-28.
- ↑ "Sponsor ZSF ⚡ Zig Programming Language". ziglang.org. Retrieved 2021-05-28.