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

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

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

Zig का अपना आधिकारिक पैकेज प्रबंधक नहीं है (गैर-आधिकारिक वाले मौजूद हैं), लेकिन एक मानक के पास 0.12 के लिए एक मील का पत्थर है।

Zig विकास को Zig Software Foundation (ZSF) द्वारा वित्त पोषित किया जाता है, जो एक गैर-लाभकारी निगम है जिसके अध्यक्ष एंड्रयू केली हैं, जो दान लेता है और कई पूर्णकालिक कर्मचारियों को काम पर रखता है।

हैलो वर्ल्ड
<वाक्यविन्यास प्रकाश लैंग = ज़िग> const एसटीडी = @import (एसटीडी);

पब एफएन मुख्य ! शून्य { const stdout = std.io.getStdOut.लेखक ; कोशिश करें stdout.print(Hello, {s}!\n, .{world}); } 

सामान्य लिंक्ड सूची
<वाक्यविन्यास प्रकाश लैंग = ज़िग> पब fn मुख्य शून्य { var नोड = लिंक्डलिस्ट (i32)। नोड { पिछला = अशक्त, अगला = अशक्त, डेटा = 1234, };

var सूची = लिंक्डलिस्ट (i32) { पहले = और नोड, अंतिम = और नोड, लेन = 1, }; }

एफएन लिंक्डलिस्ट (कंपटाइम टी: टाइप) टाइप { वापसी संरचना { पब कास्ट नोड = संरचना { पिछला: ? * नोड, अगला: ? * नोड, डेटा: टी, };

पहला: ? * नोड, अंतिम: ? * नोड, लेन: उपयोग करें, }; } 

प्रोजेक्ट

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

यह भी देखें

 * सी (प्रोग्रामिंग भाषा)
 * सी++
 * निम (प्रोग्रामिंग भाषा)
 * जंग (प्रोग्रामिंग भाषा)
 * डी (प्रोग्रामिंग भाषा)

बाहरी संबंध

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