ज़िग (प्रोग्रामिंग लैंग्वेज)

ज़िग एक अनिवार्य, सामान्य-उद्देश्य स्थिर रूप से टाइप की गई, संकलित प्रणाली प्रोग्रामिंग लैंग्वेज है,जिसे एंड्रयू केली द्वारा प्रारूपित किया गया है। लैंग्वेज को मजबूती, इष्टतमता और रखरखाव के लिए प्रारूपित किया गया है, संकलन सामान्य-समय प्रतिबिंब (कंप्यूटर प्रोग्रामिंग) और मूल्यांकन, क्रॉस संकलन, और मैनुअल मेमोरी प्रबंधन का समर्थन करता है, लैंग्वेज का एक प्रमुख लक्ष्य सी (प्रोग्रामिंग लैंग्वेज) में सुधार करना है,  दूसरों के बीच जंग से प्रेरणा लेते हुए ज़िग में निम्न-स्तरीय प्रोग्रामिंग के लिए कई विशेषताएं हैं, विशेष रूप से पैक्ड स्ट्रक्चर्स (क्षेत्र के मध्य पैडिंग के अतिरिक्त संरचनाएं), मनमाना-चौड़ाई पूर्णांक और कई सूचक प्रकार है।

ज़िग केवल एक नई लैंग्वेज नहीं है। इसमें C /C ++ कंपाइलर भी सम्मिलित है, और ज़िग का उपयोग किसी एक या दोनों लैंग्वेजओं के साथ किया जा सकता है।

संस्करण 0.10 के पश्चात से (नया डिफ़ॉल्ट) ज़िग संकलन ज़िग में लिखा गया है, अर्थात, यह एक सेल्फ-होस्टिंग संकलन है, और यह उस प्रकाशन की एक प्रमुख नई विशेषता है ( बूटस्ट्रैपिंग संकलक, C ++ में लिखी गई पुरानी लीगेसी बूटस्ट्रैपिंग संकलक अभी भी एक विकल्प है परन्तु 0.11 में नहीं होगा)। डिफ़ॉल्ट बैकएंड (अर्थात ऑप्टिमाइज़र) अभी भी एलएलवीएम है (अब संस्करण 15, लीगेसी संस्करण 13 का उपयोग करता है), और एलएलवीएम सी ++ में लिखा गया है। एलएलवीएम के साथ ज़िग (अर्थात संकलक, इससे उत्पन्न कोड नहीं) 169 एमआईबी है, बनाम एलएलवीएम 4.4 एमआईबी के अतिरिक्त। नए ज़िग के साथ संकलन करते समय बहुत कम मेमोरी का उपयोग किया जाता है (पुराना, अब लीगेसी, संकलक 3.5एक्स अधिक मेमोरी का उपयोग करता है), और यह थोड़ा तीव्र संकलित करता है। तीव्र निष्पादन योग्य कोड सामान्यतः नए संकलन के साथ अनुपालन किया जाता है (अर्थात इसकी एलएलवीएम कोड जनरेशन उत्तम है), और यह कई बग्स को ठीक करता है, परन्तु संस्करण 0.10 में पुराने लीगेसी संकलक के लिए भी सुधार हैं। स्वयं-होस्ट किए गए संकलक के साथ कसकर जोड़ा जाता है। नया संस्करण एएमडी जीपीयू के लिए कुछ प्रयोगात्मक (टियर -3) समर्थन भी जोड़ता है (एनवीडिया जीपीयू और प्लेस्टेशन 4 और 5 के लिए कुछ कम समर्थन भी है)।

पुराने बूटस्ट्रैपिंग (स्टेज1) संकलन को ज़िग और C++ में लिखा गया है, एलएलवीएम 13 को बैक-एंड के रूप में उपयोग करते हुए, अपने कई मूल लक्ष्यों का समर्थन करता है । संकलक एमआईटी लाइसेंस के तहत जारी किया गया मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर है। ज़िग संकलक सी और C ++ को समान रूप से क्लैंग को कमांड ज़िग सीसी और ज़िग C++ के साथ संकलित करने की क्षमता को प्रकट करता है, कई अलग-अलग प्लेटफार्मों के लिए एलआईबीसी और एलआईबीसीएक्सएक्स सहित कई शीर्षलेख प्रदान करता है, ज़िग के सीसी और  C++ सब-कमांड की अनुमति देता है, बॉक्स के बाहर क्रॉस संकलक के रूप में कार्य करने के लिए।

साथ ही ऑपरेटिंग सिस्टम (ज्यादातर डेस्कटॉप वाले) आधिकारिक तौर पर समर्थित (और प्रलेखित),(न्यूनतम) एप्लिकेशन एंड्रॉइड के लिए बनाए जा सकते हैं, और किए गए हैं (एंड्रॉइड एनडीके के साथ, और आईओएस के लिए प्रोग्रामिंग भी संभव है)।

ज़िग का अपना आधिकारिक पैकेज मैनेजर नहीं है (गैर-आधिकारिक वाले उपस्थित हैं), परन्तु एक मानक के पास 0.12 के लिए एक मील का पत्थर है।

ज़िग विकास को ज़िग सॉफ्टवेयर फाउंडेशन (जेडएसएफ) द्वारा वित्त पोषित किया जाता है, जो एक गैर-लाभकारी निगम है, जिसके अध्यक्ष एंड्रयू केली हैं, जो दान लेता है और कई पूर्णकालिक कर्मचारियों को काम पर रखता है।

हैलो वर्ल्ड
const std = @import("std");

pub fn main !void {

const stdout = std.io.getStdOut.writer; try stdout.print("Hello, {s}!\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, }; }

प्रोजेक्ट

 * बन एक जावास्क्रिप्ट और टाइपप्रति रनटाइम है जिसे सफारी (वेब ​​​​ब्राउज़र) की जावा आभासी मशीन का उपयोग करके ज़िग में लिखा गया है।

यह भी देखें

 * सी (प्रोग्रामिंग लैंग्वेज)
 * सी++
 * निम (प्रोग्रामिंग लैंग्वेज)
 * जंग (प्रोग्रामिंग लैंग्वेज)
 * डी (प्रोग्रामिंग लैंग्वेज)

बाहरी संबंध

 * Movie: Introducing Zig
 * Movie: The Road to 1.0
 * Zig Weekly
 * Movie: The Road to 1.0
 * Zig Weekly