जेंटी प्रोग्रामिंग लैंग्वेज

प्रिय समुदाय, मैं आपको जेंटी प्रोग्रामिंग भाषा के बारे में बताना चाहता हूं। मुझे यकीन है कि आपने उसके बारे में कुछ नहीं सुना होगा, लेकिन यह नया नहीं है। संकलक का पहला कार्यशील संस्करण 2008 में जारी किया गया था, और 2010 के अंत में नवीनतम संस्करण 3 जारी किया गया था। जेंटी एक ओपन सोर्स प्रोजेक्ट है और इसे एमआईटी लाइसेंस के तहत वितरित किया जाता है , यानी बिना किसी शर्त और प्रतिबंध के। मेरे अलावा, एक अन्य व्यक्ति ने संकलक, पुस्तकालयों और सभी प्रलेखन पर काम किया। शुरुआत में मैं भाषा के इतिहास के बारे में लिखना चाहता हूं। 2000 के बाद से, मैं इंस्टॉलरों पर काम कर रहा हूं जिसमें उपयोगकर्ता विशिष्ट कमांड से स्क्रिप्ट का निर्माण कर सकता है। यही है, प्रपत्र पर मापदंडों से प्रत्येक कमांड को कुछ भाषा में कोड में परिवर्तित किया जाना था, जिसे बायटेकोड में संकलित किया जा सकता है और एक निष्पादन योग्य फ़ाइल बना सकता है। हमने एक आदिम भाषा के साथ शुरुआत की, लेकिन अंत में व्यापक उपयोग की भाषा बनाने का फैसला किया। मुख्य आवश्यकताएं थीं: फास्ट कंपाइलर, विंडोज एपीआई के साथ आसान संचालन, वर्चुअल मशीन इंजन का छोटा आकार, संक्षिप्त और स्पष्ट वाक्यविन्यास, किसी भी प्रोग्रामिंग भाषा से कंपाइलर और वर्चुअल मशीन का उपयोग करने की क्षमता। सी में, एक बाईटेकोड संकलक और एक आभासी मशीन लिखा गया था। Gentee.dll (संकलक और वीएम) केवल 112 KB लेता है और इसे किसी भी परियोजना में शामिल किया जा सकता है जिसमें एक अंतर्निहित प्रोग्रामिंग भाषा की आवश्यकता होती है। एक जेंटी प्रोग्राम को संकलन के तुरंत बाद निष्पादित किया जा सकता है, या आप बायटेकोड और एक वायर्ड वर्चुअल मशीन के साथ एक निष्पादन योग्य फ़ाइल बना सकते हैं।

लघु भाषा विवरण


जेंटी का एक "सी" जैसा सिंटेक्स है और इस परिवार से किसी भी भाषा में आने वाले व्यक्ति द्वारा समझा जाएगा। भाषा में एक सख्त टंकण है और यह OOJP नहीं है, हालांकि इसमें प्रकार (ऑब्जेक्ट्स) की विरासत है और बहुरूपता का समर्थन करता है। मैं वाक्य रचना और मुख्य विशेषताओं का वर्णन नहीं करूंगा, मैं सिर्फ आधिकारिक दस्तावेज के भाषा विवरण अनुभाग की सामग्री देता हूं, और फिर कुछ दिलचस्प बिंदुओं पर ध्यान केंद्रित करता हूं। मुझे लगता है कि इस मामले में आपके पास जेंटी की विशेषताओं की पूरी तस्वीर होगी।

भाषा के मूल तत्व



कार्यक्रम की संरचना। पूर्वप्रक्रमक



प्रकार और चर



ऑपरेशन के तरीके



भाषा निर्माण करती है



भाव और संचालक



कुछ रोचक बाते


मुझे C में प्रोग्रामिंग पसंद है, लेकिन मुझे हमेशा यह तथ्य पसंद नहीं था कि मैं स्थानीय चर में स्ट्रिंग की तरह परिभाषित नहीं कर सकता, इसके साथ काम कर सकता हूं और फ़ंक्शन से बाहर निकलने पर इसे हटाने के बारे में नहीं सोचता। भाषा बनाते समय, मैंने इस समस्या को ठीक किया और आप सुरक्षित रूप से लिख सकते हैं

func myfunc
{
str mystr = "This is a string"
print( mystr ) // , print( "This is a string")
}


यह न केवल str पर लागू होता है, बल्कि किसी भी प्रकार पर भी लागू होता है। आप प्रकार पर डिलीट और इनिट विधियों का वर्णन कर सकते हैं, जो चर बनाते और हटाते समय स्वचालित रूप से कॉल किए जाएंगे। इसके अलावा, किसी भी प्रकार को इंडेक्स [i] द्वारा "खराब" किया जा सकता है, फॉर्च्यूनर ऑपरेटर में संलयन, संचालन का उपयोग =, +, -, == =; =!, *, आदि ...

दूसरा दिलचस्प बिंदु किसी भी एपीआई के साथ एकीकरण है। यदि निर्यात कार्यों के साथ एक डीएलएल है, तो आप आसानी से अपने कार्यक्रम में उन्हें कनेक्ट और उपयोग कर सकते हैं।
उदाहरण के लिए, आप लिख सकते हैं
import "user32.dll"
{
uint ExitWindowsEx( uint, uint )
uint RegisterWindowMessageA( uint ) -> RegisterWindowMessage
}

और फिर सामान्य कार्यों के रूप में ExitWindowsEx और RegisterWindowMessage का उपयोग करें। इस सुविधा का यह मतलब बिल्कुल नहीं है कि भाषा को अन्य प्लेटफार्मों पर पोर्ट नहीं किया जा सकता है। Gentee v2 में लिनक्स के लिए एक संस्करण था, लेकिन, दुर्भाग्य से, अब तक विभिन्न कारणों से कंपाइलर का तीसरा संस्करण केवल विंडोज के लिए ही बना हुआ है।

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

आगे क्या है?


किसी भी भाषा को उसके व्यावहारिक अनुप्रयोग की संभावना के बिना कोई दिलचस्पी नहीं है। एक तरफ, हमारे कार्यक्रमों में जेंटी का व्यापक रूप से उपयोग किया जाता है, वितरण में 30 से अधिक पुस्तकालय (फाइलें, स्ट्रिंग, पेड़, dbf, sqlite, xml, COM / OLE, HTTP, FTP, आदि) शामिल हैं, संकलक में एक अंतर्निहित ऑप्टिमाइज़र होता है, यहां तक ​​कि GUI प्रोग्राम (लेकिन प्रलेखन के बिना) बनाने के लिए एक दृश्य स्टूडियो भी है, जिसमें एक डिबगर Gentee उपयोगकर्ताओं द्वारा विकसित किया गया है। दूसरी ओर, भाषा में कोई जनहित नहीं है। कारण समझ में आते हैं - भाषा से जुड़ी हर चीज शुद्ध उत्साह पर बनाई गई थी और इसलिए इसे वांछित रूप में लाने के लिए पर्याप्त धन नहीं है। मैं न केवल विंडोज के लिए संस्करण देखना चाहता हूं। साथ ही, भाषा में नई सुविधाओं को जोड़ना संभव होगा (वैकल्पिक पैरामीटर, UTF-8 के लिए समर्थन और भाषा में यूनिकोड)। विकास के तरीके हैं, लेकिन अब भी अन्य अनुप्रयोगों में उपयोग के लिए जेंटी एक बहुत ही सुविधाजनक भाषा है और छोटी क्षमताओं को जल्दी से बनाने के लिए एक उपयोगी उपकरण के रूप में है।

उन लोगों के लिए जो कहते हैं: "हमें एक अन्य प्रोग्रामिंग भाषा की आवश्यकता क्यों है?" या "यह दूसरों की तुलना में बेहतर क्यों है?", उन्हें मुझे समान विशेषताओं के साथ एक और भाषा बताएं जो प्रोग्राम में स्क्रिप्टिंग भाषा के रूप में उपयोग की जा सकती है और जिसमें संकलक और / या वर्चुअल मशीन है 150 केबी से कम लेता है।

Source: https://habr.com/ru/post/In145813/


All Articles