टाइनीगो यह एक परियोजना है जिसमें एक "गो" भाषा संकलक विकसित किया गया है उन क्षेत्रों के लिए जिनके परिणामस्वरूप कोड और कम संसाधन खपत के कॉम्पैक्ट प्रतिनिधित्व की आवश्यकता होती हैजैसे कि माइक्रोकंट्रोलर और कॉम्पैक्ट सिंगल प्रोसेसर सिस्टम। कोड बीएसडी लाइसेंस के तहत वितरित किया जाता है।
कई लक्ष्य प्लेटफार्मों के लिए बनाएँ यह एलएलवीएम का उपयोग करके कार्यान्वित किया जाता है और भाषा का समर्थन करने के लिए, पुस्तकालयों का उपयोग किया जाता है जो मुख्य रूप से गो प्रोजेक्ट टूल द्वारा उपयोग किए जाते हैं। संकलित कार्यक्रम को सीधे माइक्रोकंट्रोलर पर चलाया जा सकता है, जिससे आप स्वचालन स्क्रिप्ट लिखने के लिए भाषा के रूप में गो का उपयोग कर सकते हैं।
टिनीगो के बारे में
TinyGO प्रोजेक्ट बनाने का कारण कॉम्पैक्ट डिवाइसों में गो भाषा का सामान्य उपयोग करने की इच्छा थी- डेवलपर्स ने तर्क दिया कि यदि माइक्रोकंट्रोलर के लिए पायथन का एक संस्करण है, तो गो भाषा के लिए एक समान क्यों नहीं बनाया जाए?
रुस्ट के बजाय गो को चुना गया क्योंकि यह सीखना आसान है, थ्रेड-इंडिपेंडेंट सपोर्ट के लिए कॉरगेशन-आधारित सपोर्ट प्रदान करता है और एक व्यापक मानक लाइब्रेरी ("बैटरी शामिल") प्रदान करता है।
वर्तमान रूप में, 15 माइक्रोकंट्रोलर मॉडल का समर्थन किया जाता है, जिसमें विभिन्न Adafruit, Arduino, BBC माइक्रो, बिट, ST माइक्रो, डिजिस्पार्क, नॉर्डिक सेमीकंडक्टर, मेकरडी और फाइटेक बोर्ड शामिल हैं।
प्रोग्राम को ब्राउज़र में वेब संस्करण प्रारूप में चलाने के लिए और लिनक्स के लिए निष्पादन योग्य फ़ाइलों के रूप में भी बनाया जा सकता है।
ESP8266 / ESP32 नियंत्रकों के लिए अभी तक कोई समर्थन नहीं है, लेकिन LLVM में Xtensa चिप के लिए समर्थन जोड़ने के लिए एक परियोजना विकसित है, जो अभी भी अस्थिर के रूप में चिह्नित है और TinyGo एकीकरण के लिए तैयार नहीं है।
परियोजना के मुख्य उद्देश्य:
- बहुत कॉम्पैक्ट निष्पादन की पीढ़ी
- माइक्रोकंट्रोलर बोर्डों के सबसे आम मॉडल के लिए समर्थन
- वेब के लिए उपयोग करने की संभावना
- C फ़ंक्शन को कॉल करते समय न्यूनतम ओवरहेड के साथ CGo समर्थन
- अधिकांश मानक पैकेजों के लिए समर्थन और इसे संशोधित किए बिना मौजूदा विशिष्ट कोड को संकलित करने की क्षमता।
मल्टी-कोर सिस्टम के लिए समर्थन मुख्य लक्ष्यों में से एक नहीं है, बड़ी संख्या में कोरटाइन (फोरेंसिक रिलीज खुद पूरी तरह से समर्थित है) की प्रभावी रिलीज, जीसी बेंचमार्क कंपाइलर के प्रदर्शन स्तर को प्राप्त करती है (एलएलवीएम के लिए इसे फिर से चुना जाता है। और कुछ अनुप्रयोगों में टिनीगो जीसी से अधिक तेज हो सकती है) और गो में सभी अनुप्रयोगों के साथ पूर्ण संगतता।
अहंकार संकलक के लिए मुख्य अंतर कचरा कलेक्टर का उपयोग करके गो के मूल मेमोरी मैनेजमेंट मॉडल को बचाने और LLVM का उपयोग करके सी कोड में संकलित करने के बजाय कुशल कोड उत्पन्न करने का प्रयास है।
Tinygo भी एक नया रनटाइम लाइब्रेरी प्रदान करता है जो कॉम्पैक्ट सिस्टम के लिए एक अनुकूलित अनुसूचक को लागू करता है।, एक स्मृति आवंटन प्रणाली और स्ट्रिंग नियंत्रक। नए रनटाइम के आधार पर, कुछ पैकेजों को फिर से बनाया गया, जैसे सिंकिंग और मिररिंग।
Tinygo संस्करण 0.7 के बारे में
वर्तमान में Tinygo अपने संस्करण 0.7 में है और मुख्य परिवर्तनों के इस संस्करण का उल्लेख किया जा सकता है "लिटिलगो टेस्ट" कमांड का कार्यान्वयन है, जो कचरा संग्रहण सहायता प्रदान करता है अधिकांश लक्ष्य बोर्डों के लिए (एआरएम कॉर्टेक्स-एम पर आधारित) और वेबएस्प्रेम, जो आरआईएससी-वी आर्किटेक्चर और अरुडिनो नैनो बोर्ड पर आधारित HiFive1 Rev B का समर्थन करता है, यह भाषा की अनुकूलता में सुधार करता है (गेटर्स और सेटर का उपयोग करके बिट फ़ील्ड के लिए समर्थन, अनाम संरचनाओं के लिए समर्थन)।
Ubuntu और डेरिवेटिव पर टिनीगो को कैसे स्थापित करें?
उन लोगों के लिए, जो डेबियन, रास्पबियन, उबंटू और डेरिवेटिव पर टिनीगो को स्थापित करने में सक्षम हैं। उन्हें एक टर्मिनल खोलना होगा और उसमें हम निम्नलिखित कमांड को निष्पादित करने जा रहे हैं:
wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_amd64.deb sudo dpkg -i tinygo_0.7.0_amd64.deb
एआरएम उपकरणों के लिए सिस्टम के विशेष मामले के लिए (रसबियन और उबंटू संस्करण)
हम निम्नलिखित टाइप करने जा रहे हैं:
wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_armhf.deb sudo dpkg -i tinygo_0.7.0_armhf.deb
स्थापना पूर्ण करने के बाद, उन्हें यह सुनिश्चित करना चाहिए कि टिट्गो का रास्ता उनके पेट में है।
export PATH=$PATH:/usr/local/tinygo/bin
अंत में, स्थापना को सत्यापित करने के लिए, हम निम्नलिखित कमांड टाइप करने जा रहे हैं:
tinygo versión
और वह हमें कुछ इस तरह फेंक देना चाहिए
tinygo version 0.7.0 linux/amd64
इसके बारे में अधिक जानने के लिए आप परामर्श कर सकते हैं निम्नलिखित लिंक।