क्रिस्टल (प्रोग्रामिंग भाषा)

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

वर्तमान में सक्रिय विकास में है। यह अपाचे लाइसेंस संस्करण 2.0 के तहत मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर के रूप में जारी किया गया है।

इतिहास
जून 2011 में भाषा पर काम प्रारंभ हुआ, संकलित भाषा की गति, दक्षता और प्रकार की सुरक्षा के साथ रूबी की भव्यता और उत्पादकता को मिलाने के उद्देश्य से। प्रारंभ में इसका नाम जॉय रखा गया, लेकिन जल्द ही इसका नाम बदलकर क्रिस्टल कर दिया गया।

क्रिस्टल कंपाइलर पहले रूबी में लिखा गया था, लेकिन बाद में क्रिस्टल में फिर से लिखा गया, इस प्रकार नवंबर 2013 तक स्व-होस्टिंग (संकलक) कंपाइलर सेल्फ-होस्टिंग बन गया। पहला आधिकारिक संस्करण जून 2014 में जारी किया गया था। जुलाई 2016 में, क्रिस्टल टीआईओबीई इंडेक्स में सम्मिलित हो गया।

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

हैलो वर्ल्ड
क्रिस्टल में हैलो वर्ल्ड प्रोग्राम लिखने का यह सबसे सरल विधि है: रूबी के समान ही या ऑब्जेक्ट उन्मुख प्रोग्रामिंग शैली का उपयोग करना:

प्रकार अनुमान और संघ प्रकार
निम्नलिखित कोड सरणी को परिभाषित करता है जिसमें विभिन्न प्रकार होते हैं जिनमें कोई प्रयोग करने योग्य सामान्य पूर्वज नहीं होता है। क्रिस्टल स्वचालित रूप से अलग-अलग वस्तुओं के प्रकार से एक संघ प्रकार बनाता है।

समवर्ती
चैनलों का उपयोग तंतुओं के बीच संवाद करने के लिए किया जा सकता है, जो कि कीवर्ड का उपयोग करके प्रारंभ किए जाते हैं.

बाहरी संबंध

 * Documentation
 * /r/crystal_programming subreddit
 * Crystal Announcements
 * /r/crystal_programming subreddit
 * Crystal Announcements