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

From Vigyanwiki
जूलिया
Julia Programming Language Logo.svg
ParadigmMulti-paradigm: multiple dispatch (primary paradigm), functional, procedural, meta, reflective, multistaged,[1] object-oriented[2]
द्वारा डिज़ाइन किया गयाJeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
DeveloperJeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors[3][4]
पहली प्रस्तुति2012; 12 years ago (2012)[5]
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.) and
Script error: The module returned a nil value. It is supposed to return an export table. LTS[9][10] / 19 July 2022; 21 months ago (2022-07-19)
Preview release
1.9.0-beta4[6][7][8] / 7 February 2023; 14 months ago (2023-02-07) and 1.8.6[11] being worked on and 1.10.0-DEV with daily updates[12]
टाइपिंग अनुशासनDynamic,[13] inferred, strong,[13] nominative, parametric, optional
कार्यान्वयन भाषाJulia, C, C++, Scheme, LLVM[14]
प्लेटफॉर्मTier 1: x86-64, IA-32; CUDA 10.1+[15]/Nvidia GPUs (for Linux and Windows)
Tier 2: 64-bit Arm (e.g. Apple M1 Macs, while Julia also has tier 1 support using Rosetta[16]), 32-bit Windows (64-bit is tier 1)
Tier 3: 32-bit Arm, PowerPC, AMD (ROCm) GPUs and oneAPI/Intel's GPUs.
Also supports Google's TPUs,[17] and has web browser support (for JavaScript and WebAssembly),[18] and can work in Android. For more details see "supported platforms".
ओएसLinux, macOS, Windows and FreeBSD
लाइसेंसMIT (core),[3] GPL v2;[19][20] a makefile option omits GPL libraries[21]
फ़ाइल नाम एक्सटेंशनएस.jl
वेबसाइटJuliaLang.org
Influenced by

जूलिया एक उच्च-स्तरीय गतिशील प्रोग्रामिंग लैंग्वेज है। इसकी विशेषताएं संख्यात्मक विश्लेषण और संगणनीय विज्ञान के लिए उपयुक्त हैं।[27][28][29][30]

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

जूलिया कचरा-संग्रह,[35] उत्सुक मूल्यांकन का उपयोग करता है, और अंकगणितीय फ़्लोटिंग-पॉइंट के लिए उपयुक्त लाइब्रेरी सम्मिलित करता है जो फ़्लोटिंग-पॉइंट गणना, रैखिक बीजगणित, यादृच्छिक संख्या पीढ़ी, और नियमित अभिव्यक्ति मिलान का समर्थन करती है। कई लाइब्रेरी उपलब्ध हैं, जिनमें कुछ तीव्र फूरियर रूपांतरण सम्मिलित हैं जो पहले जूलिया के साथ संग्रहित किए गए थे और अब भिन्न हैं।[36]

कई विकास उपकरण जूलिया में कोडन का समर्थन करते हैं, जैसे एकीकृत विकास वातावरण, जिसमे माइक्रोसॉफ्ट के विज़ुअल स्टूडियो कूट के लिए एक प्लग-इन उपलब्ध है[37] डिबगिंग और लिंट समर्थन प्रदान करना; एकीकृत उपकरणों की विशेषता है। एक रूपरेखा (कंप्यूटर प्रोग्रामिंग) (और लौ ग्राफ समर्थन उपलब्ध है[38][39] अंतर्निहित एक के लिए), डिबगर,[40] और रिबगर.जेएल संकुल सहभागी प्रोग्रामिंग बार-निष्पादन डिबगिंग का समर्थन करता है[lower-alpha 1][42]

जूलिया अन्य लैंग्वेज के साथ भी कार्य करती है, जिसमे अतिरिक्त पैकेजों के उपयोग के साथ C को कॉल करने का विशेष समर्थन है। इसे पायथन के साथ-साथ आर, जंग, सी ++, एसक्यूएल और जावास्क्रिप्ट के साथ कार्य करने या संकलित करने के लिए भी प्रारूपित किया गया है।

जूलिया को एक पैकेज का उपयोग करके द्विआधारी निष्पादन में संकलित किया जा सकता है इसके लिए सभी जूलिया सुविधाओं का समर्थन करना एक आवश्यक विशेषता है। किसी भिन्न पैकेज का उपयोग करके इन्हें छोटे द्विआधारी निष्पादन योग्य भी बनाया जा सकता हैं परन्तु तब जूलिया रनटाइम 'निष्पादन योग्य' में सम्मिलित नहीं है। नीचे 9 KB कंप्यूटर या 2 KB RAM वाले माइक्रोकंट्रोलर के लिए भी डिफ़ॉल्ट रूप से, जूलिया कूट सभी जूलिया सुविधाओं का समर्थन करने के लिए जूलिया रनटाइम पर निर्भर करता है। थ्रेडिंग, परन्तु कुछ जूलिया कूट को छोटे निष्पादनयोग्य कूट में संकलित किया जा सकता है। दोनों ही स्थितियों में कोई स्रोत कूट वितरित करने की आवश्यकता नहीं है।

इतिहास

जूलिया पर कार्य 2009 में जेफ बेजानसन (प्रोग्रामर), स्टीफन कारपिंस्की, विरल बी. शाह और एलन एडेलमैन द्वारा प्रारम्भ किया गया था, जो एक ऐसी मुक्त लैंग्वेज बनाने के लिए तैयार थे जो उच्च-स्तरीय और तेज दोनों थी। 14 फरवरी 2012 को, टीम ने लैंग्वेज के मिशन को समझाते हुए एक ब्लॉग पोस्ट के साथ एक वेबसाइट लॉन्च की।[43] अप्रैल 2012 में इन्फोवर्ल्ड के साथ एक साक्षात्कार में, कारपिंस्की ने जूलिया नाम के बारे में कहा: वास्तव में कोई अच्छा कारण नहीं है। यह सिर्फ एक सुंदर नाम जैसा लग रहा था।[29]बेजानसन ने कहा कि उन्होंने एक मित्र की सिफारिश पर नाम चुना,[44] फिर वर्षों बाद लिखा:

प्री-1.0 जूलिया के 2012 के लॉन्च के बाद से 10 वर्षों में, समुदाय का विकास हुआ है। जूलिया पैकेज पारिस्थितिकी तंत्र में कूट की 11.8 मिलियन से अधिक लाइनें हैं ।[45] जूलियाकॉन अकादमिक सम्मेलन जूलिया उपयोगकर्ताओं और डेवलपर्स के लिए 2014 से सालाना आयोजित किया गया है, जिसमें जूलियाकॉन 2020 28,900 से अधिक अद्वितीय दर्शकों का स्वागत करता है।[46] और फिर जूलियाकॉन 2021 ने पिछले सभी रिकॉर्ड तोड़ दिए (यूट्यूब पर 300 से अधिक जूलियाकॉन 2021 प्रस्तुतियों के साथ, एक साल पहले 162 से अधिक), और सम्मेलन के दौरान 43,000 अद्वितीय दर्शक।[47] जूलिया के तीन सह-निर्माता न्यूमेरिकल सॉफ्टवेयर के लिए 2019 जेएच विल्किंसन पुरस्कार के प्राप्तकर्ता हैं। जूलिया के निर्माण के लिए न्यूमेरिकल सॉफ्टवेयर के लिए जेम्स एच। विल्किंसन पुरस्कार (हर चार साल में दिया जाता है), उच्च प्रदर्शन के निर्माण के लिए एक अभिनव वातावरण उपकरण जो कम्प्यूटेशनल विज्ञान समस्याओं के विश्लेषण और समाधान को सक्षम करते हैं।[48] इसके अलावा, एमआईटी में लागू गणित के प्रोफेसर एलन एडेलमैन को उच्च-प्रदर्शन संगणनीयता, रैखिक बीजगणित और कम्प्यूटेशनल विज्ञान में उत्कृष्ट सफलताओं और जूलिया प्रोग्रामिंग लैंग्वेज में योगदान के लिए 2019 आईइइइ कंप्यूटर सोसाइटी सिडनी फ़र्नबैक अवार्ड प्राप्त करने के लिए चुना गया है।[49]

दोनों जूलिया 0.7[50] और संस्करण 1.0 को 8 अगस्त 2018 को जारी किया गया था। जूलिया 0.7 पर कार्य करना एक बड़ा उपक्रम था (उदाहरण के लिए, एक पूरी तरह से नए अनुकूलक के कारण), और शब्दार्थ में कुछ बदलाव किए गए थे, उदा। पुनरावृति इंटरफ़ेस को सरल बनाया गया था;[51] और सिंटैक्स थोड़ा बदल गया (सिंटैक्स अब स्थिर है, और 1.x और 0.7 के लिए समान है)।

जूलिया 1.1 जनवरी 2019 में एक नए अपवाद स्टैक फीचर के साथ जारी किया गया था। जूलिया 1.2 को अगस्त 2019 में वेब ब्राउज़र के लिए कुछ बिल्ट-इन सपोर्ट के साथ रिलीज़ किया गया था।[52] जूलिया 1.3 ने जूलिया पैकेज के लिए कंपोज़ेबल मल्टी-थ्रेडेड समानता और एक द्विआधारी आर्टिफैक्ट सिस्टम जोड़ा।[53] जूलिया 1.4 ने जेनरिक एरे इंडेक्सिंग के लिए सिंटैक्स जोड़ा जैसे कि हैंडल करने के लिए शून्य-आधारित नंबरिंग#प्रोग्रामिंग लैंग्वेज में उपयोग|0-आधारित सरणियाँ।[54] मेमोरी मॉडल भी बदला गया था।[55] अगस्त 2020 में जारी जूलिया 1.5 ने रिकॉर्ड और डिबगिंग फिर से चलाएं समर्थन जोड़ा,[56] मोज़िला के आरआर (डिबगिंग) टूल के लिए। रिलीज़ ने रीड-इवल-प्रिंट लूप (सॉफ्ट स्कोप) में व्यवहार को प्रोजेक्ट ज्यूपिटर में उपयोग किए गए व्यवहार में बदल दिया, परन्तु गैर-आरईपीएल कूट के साथ पूरी तरह से संगत। अधिकांश थ्रेड (संगणनीयता) को स्थिर के रूप में चिह्नित किया गया था, और इस रिलीज़ के साथ मनमाने ढंग से अपरिवर्तनीय वस्तुओं को जारी किया गया था - चाहे उनके पास ऐसे क्षेत्र हों जो परिवर्तनशील वस्तुओं को संदर्भित करते हों या नहीं - अब स्टैक आवंटित किया जा सकता है,[57] ढेर आवंटन को कम करना, उदा। views अब आवंटन नहीं हो रहा है। जूलिया 1.5 ने तथाकथित टाइम-टू-फर्स्ट-प्लॉट प्रदर्शन को लक्षित किया, सामान्य तौर पर, संकलन की गति (जेनरेट किए गए कूट के प्रदर्शन के विपरीत), और पैकेज लोडिंग में सुधार के लिए डेवलपर्स के लिए अतिरिक्त टूल।[58] जूलिया 1.6 1.0 के बाद सबसे बड़ी रिलीज थी, नवीनतम/एकमात्र दीर्घकालिक समर्थन (एलटीएस) संस्करण है (हालांकि अधिकांश को नवीनतम स्थिर/1.8 संस्करण का उपयोग करने की सलाह दी जाती है), कई मोर्चों पर तेजी से, उदा। कुछ मामलों में द्विआधारी कलाकृतियों के बड़े पेड़ों के लिए लोड समय में 50x स्पीडअप में समानांतर प्रीकंपिलेशन और पैकेजों की तेजी से लोडिंग की शुरुआत की।[59] संस्करण 1.7 के रूप में जूलिया विकास जल्दी रिलीज करने के लिए वापस आ गया है, अक्सर रिलीज | समय-आधारित रिलीज।[60] जूलिया 1.7.0 नवंबर 2021 में कई बदलावों के साथ जारी किया गया था, उदा। एक नया तेजी से यादृच्छिक संख्या पीढ़ी|यादृच्छिक-संख्या जनरेटर। जूलिया 1.7.3 को 25 मई 2022 को जारी किया गया था, जिसमें कम से कम एक सुरक्षा अद्यतन सहित कुछ मुद्दों को ठीक किया गया था।[61] और 1.7.x अब समर्थित नहीं है।

जूलिया 1.8 को 2022 में रिलीज़ किया गया था (और जनवरी 2023 में फॉलोअप के रूप में 1.8.5 तक के संस्करण,[62] दोनों फिक्सिंग बग्स (बैकपोर्टिंग) और इनवैलिडेशन, इस प्रकार तेजी से संकलन), बिना स्रोत कूट के जूलिया कार्यक्रमों को वितरित करने के लिए सुधार के साथ, और कंपाइलर स्पीडअप, कुछ मामलों में 25% तक,[63] और अधिक नियंत्रणीय इनलाइन विस्तार (अर्थात अब भी आवेदन करने की अनुमति देता है @inline कॉल साइट पर, न केवल समारोह में ही) और जूलिया 1.9 अगला मील का पत्थर है, यह और 1.10, 1.11, 1.12 और 2.0 के लिए मील के पत्थर की वर्तमान में कोई नियत तारीख नहीं है।[64][65]


जूलियाकॉन

2014 से,[66] जूलिया समुदाय ने डेवलपर्स और उपयोगकर्ताओं पर केंद्रित एक वार्षिक जूलिया सम्मेलन की मेजबानी की है। पहला जूलियाकॉन शिकागो में हुआ और सम्मेलन की वार्षिक घटना को किकस्टार्ट किया। 2014 से, सम्मेलन एमआईटी सहित कई स्थानों पर हुआ है[67] और मैरीलैंड विश्वविद्यालय, बाल्टीमोर।[68] घटना के दर्शक कुछ दर्जन लोगों से बढ़कर 28,900 से अधिक अद्वितीय उपस्थित लोगों तक पहुंच गए हैं[69] जूलियाकॉन 2020 के दौरान, जो वस्तुतः हुआ। जूलियाकॉन 2021 भी वर्चुअली हुआ[70] प्रोफेसरों विलियम कहन (आईईईई 754-1985 फ्लोटिंग-पॉइंट मानक के प्राथमिक वास्तुकार, जो उनके मुख्य वक्ता के बारे में है, वस्तुतः सभी सीपीयू उपयोग करते हैं और जूलिया समेत लैंग्वेज) से मुख्य पते के साथ,[71] और जन विटेक,[72] ज़िलॉय शेरी ली, और सौमिथ चिंताला (पीटरच के सह-निर्माता)।[73] जूलियाकॉन 43,000 अद्वितीय उपस्थित लोगों और 300 से अधिक प्रस्तुतियों तक बढ़ गया (अभी भी स्वतंत्र रूप से सुलभ है, साथ ही पुराने वर्षों के लिए)। जूलियाकॉन 2022 भी 27 जुलाई से 29 जुलाई, 2022 के बीच पहली बार सिर्फ अंग्रेजी ही नहीं बल्कि कई लैंग्वेज में वर्चुअल आयोजित किया जाएगा।

प्रायोजक

जूलिया लैंग्वेज परियोजना की दीर्घकालिक स्थिरता सुनिश्चित करने के प्रयास में 2014 में न्यूफोकस वित्तीय रूप से प्रायोजित परियोजना बन गई।[74] एमआईटी लिंकन प्रयोगशाला में जेरेमी केपनर अपने शुरुआती दिनों में जूलिया परियोजना के संस्थापक प्रायोजक थे। इसके अलावा, जूलिया के विकास के लिए गॉर्डन और बेट्टी मूर फाउंडेशन, अल्फ्रेड पी। स्लोन फाउंडेशन, इंटेल और राष्ट्रीय विज्ञान संस्था, DARPA, नेशनल इंस्टीट्यूट ऑफ हेल्थ, NASA और संघीय विमानन प्रशासन जैसी एजेंसियों से फंड आवश्यक है। .[75] मोज़िला, फ़ायरफ़ॉक्स वेब ब्राउज़र के निर्माता, ने H1 2019 के लिए अपने अनुसंधान अनुदान के साथ, जूलिया को ब्राउज़र में लाने वाली परियोजना के लिए आधिकारिक जूलिया टीम के एक सदस्य को प्रायोजित किया,[76] फ़ायरफ़ॉक्स के लिए अर्थ और अन्य वेब ब्राउज़र।[77][78][79][80] गिटहब पर व्यक्तिगत दाताओं द्वारा जूलिया लैंग्वेज का भी समर्थन किया जाता है।[81]


जूलिया कंपनी

जूलियाहब, इंक. की स्थापना 2015 में जूलिया कम्प्यूटिंग, इंक. के रूप में वायरल बी. शाह, दीपक विंची, एलन एडेलमैन, जेफ बेजानसन, स्टीफन कारपिंस्की और वापस क्यों द्वारा की गई थी।[82][83] जून 2017 में, जूलिया संगणनीयता ने 4.6 अमेरिकी डॉलर जुटाएजनरल कैटालिस्ट और संस्थापक सामूहिक से सीड फंडिंग में मिलियन,[84] उसी महीने अल्फ्रेड पी. स्लोन फाउंडेशन द्वारा खुला स्रोत सॉफ्टवेयर का समर्थन करने के लिए $910,000 प्रदान किया गया था। जूलिया समुदाय में विविधता को बढ़ावा देने के लिए $160,000 सहित ओपन-सोर्स जूलिया विकास,[85] और दिसंबर 2019 में कंपनी को $1.1 मिलाइमारतों में हीटिंग, वेंटिलेशन और एयर कंडीशनिंग (HVAC) सिस्टम की कुल ऊर्जा खपत को कम करने के लिए एक न्यूरल कंपोनेंट यंत्र अधिगम टूल विकसित करने के लिए अमेरिकी सरकार से मिलियन फंडिंग।[86] जुलाई 2021 में, जूलिया कम्प्यूटिंग ने घोषणा की कि उन्होंने डोरिल्टन वेंचर्स के नेतृत्व में $24 मिलियन सीरीज़ ए राउंड जुटाए हैं,[87] जिसका मालिक भी है Formula 1 टीम विलियम्स ग्रां प्री इंजीनियरिंग, जिसने जूलिया कम्प्यूटिंग के साथ भागीदारी की। विलियम्स के वाणिज्यिक निदेशक ने कहा: सर्वश्रेष्ठ-इन-क्लास क्लाउड तकनीक बनाने वाली कंपनियों में निवेश करना डोरिल्टन और जूलिया के बहुमुखी मंच के लिए एक रणनीतिक फोकस है, अनुकरण और मॉडलिंग में क्रांतिकारी क्षमताओं के साथ, हमारे व्यापार के लिए बेहद प्रासंगिक है। हम जूलिया संगणनीयता को दुनिया के सबसे तकनीकी रूप से उन्नत खेल में एम्बेड करने के लिए तत्पर हैं।[88]


लैंग्वेज सुविधाएँ

जूलिया एक सामान्य प्रयोजन की प्रोग्रामिंग लैंग्वेज है,[89] जबकि मूल रूप से संख्यात्मक/तकनीकी संगणनीयता के लिए डिज़ाइन किया गया था। यह लो-लेवल सिस्टम प्रोग्रामिंग के लिए भी उपयोगी है,[90] एक विनिर्देश लैंग्वेज के रूप में,[91] हाई-लेवल सिंथेसिस (HLS) टूल (हार्डवेयर के लिए, उदाहरण के लिए क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला), <रेफरी नाम = HLS/FPGA>Biggs, Benjamin; McInerney, Ian; Kerrigan, Eric C.; Constantinides, George A. (2022). "जूलिया भाषा का उपयोग करते हुए उच्च-स्तरीय संश्लेषण". arXiv:2201.11522 [cs.SE]. हम जूलिया एचएलएस टूल का एक प्रोटोटाइप पेश करते हैं, जो जूलिया में लिखा गया है, जो जूलिया कोड को वीएचडीएल में बदल देता है।</ref> और वेब प्रोग्रामिंग के लिए रेफरी>"जूलिया के लिए डैश की घोषणा". plotly (Press release) (in English). 2020-10-26. Retrieved 2021-09-02.</ रेफ> दोनों सर्वर पर रेफरी>Anaya, Richard (2019-04-28). "जूलिया में मल्टी-थ्रेडेड HTTP सर्वर कैसे बनाएं". Medium (in English). Retrieved 2019-07-25. संक्षेप में, भले ही जूलिया के पास वर्तमान में बॉक्स से बाहर बहु-थ्रेडेड सर्वर समाधान का अभाव है, हम HTTP हैंडलिंग के लिए पूर्ण CPU उपयोग प्राप्त करने के लिए आसानी से इसकी प्रक्रिया वितरण सुविधाओं और अत्यधिक लोकप्रिय लोड संतुलन तकनीक का लाभ उठा सकते हैं।</रेफरी>[92] और ग्राहक[93][18]ओर।

लैंग्वेज की प्रमुख विशेषताएं हैं:

  • एकाधिक प्रेषण: तर्क प्रकारों के संयोजनों में फ़ंक्शन व्यवहार को परिभाषित करने की क्षमता प्रदान करना
  • गतिशील प्रकार सिस्टम: प्रलेखन, अनुकूलन और प्रेषण के लिए प्रकार
  • प्रदर्शन प्रकार प्रणाली के करीब आ रहा है | सांख्यिकीय रूप से टाइप की गई लैंग्वेजएँ जैसे सी
  • एक अंतर्निहित पैकेज प्रबंधक
  • लिस्प (प्रोग्रामिंग लैंग्वेज)-जैसी मैक्रोज़ और अन्य मेटाप्रोग्रामिंग सुविधाएं
  • कॉल सी (प्रोग्रामिंग लैंग्वेज) बिना रैपर या विशेष अप्लिकेशन प्रोग्रामिंग अंतरफलक के सीधे कार्य करता है
  • अन्य लैंग्वेज के साथ इंटरफेस करने की क्षमता, उदा। PythonCall.jl Python को या उससे कॉल करने की अनुमति देता है (PyCall.jl के साथ भी संभव है[lower-alpha 2]), आर RCall.jl के साथ, और Java/Scala JavaCall.jl के साथ
  • शेल (संगणनीयता) जैसी क्षमताएं अन्य प्रक्रियाओं को प्रबंधित करने के लिए
  • समानांतर संगणनीयता और वितरित संगणनीयता के लिए डिज़ाइन किया गया
  • कोरूटिन्स: हल्का हरा धागा
  • यूज़र-डिफ़ाइंड प्रकार बिल्ट-इन जितने कॉम्पैक्ट होते हैं
  • विभिन्न तर्क प्रकारों के लिए कूट का स्वत: निर्माण
  • संख्यात्मक और अन्य प्रकार के लिए एक्स्टेंसिबल रूपांतरण और प्रचार
  • यूनिकूट के लिए समर्थन, जिसमें UTF-8 सम्मिलित है, परन्तु इन्हीं तक सीमित नहीं है

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

डिफ़ॉल्ट रूप से, जूलिया रनटाइम पूर्व-स्थापित होना चाहिए क्योंकि उपयोगकर्ता द्वारा प्रदान किया गया स्रोत कूट चलाया जाता है। वैकल्पिक रूप से, एक स्टैंडअलोन निष्पादन योग्य जिसे जूलिया स्रोत कूट की आवश्यकता नहीं है, उदाहरण के साथ बनाया जा सकता है। पैकेजकंपाइलर.जेएल।[97] जूलिया में सब कुछ एक वस्तु है (उदाहरण के लिए लैंग्वेज के साथ आने वाले प्रकार, जैसे कि यन्त्र पूर्णांक और IEEE 754, जिनमें कई OOP लैंग्वेज की तरह कम व्यवहार नहीं है, जैसे कि C ++ और Java, और अभी भी समान हैं जितनी जल्दी हो सके)। हालाँकि, सभी मुख्यधारा की OOP लैंग्वेज के विपरीत, जैसे कि पायथन, ऑब्जेक्ट डिफ़ॉल्ट रूप से सिंगल-डिस्पैच (या इनहेरिटेंस) का उपयोग नहीं करते हैं। और जबकि यह विचारधारात्मक जूलिया कूट है, पैकेज की सहायता से अधिक पारंपरिक ओओपी कूट का चयन किया जा सकता है,[98] पायथन के एकल-प्रेषण OOP प्रणाली का अनुकरण करना। प्रोग्रामिंग की अधिक (या अधिकतर) शैलियों को चुना जा सकता है, उदा। पैटर्न मिलान, संकुल का उपयोग कर।

जूलिया का मैक्रो (कंप्यूटर विज्ञान)#सिंटैक्टिक मैक्रोज़ (मेटाप्रोग्रामिंग के लिए प्रयुक्त), लिस्प मैक्रोज़ की तरह, मैक्रो (कंप्यूटर विज्ञान) से अधिक शक्तिशाली हैं#टेक्स्ट-प्रतिस्थापन मैक्रोज़|टेक्स्ट-प्रतिस्थापन मैक्रोज़ कुछ अन्य लैंग्वेज जैसे सी, क्योंकि वे सार वाक्य रचना का पेड़ (एएसटी) के स्तर पर कार्य करते हैं। जूलिया का मैक्रो सिस्टम स्वच्छ मैक्रो है, परन्तु वांछित होने पर जानबूझकर कैप्चर का समर्थन करता है (जैसे एनाफोरिक मैक्रोज़ के लिए) esc निर्माण।

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

जूलिया, डायलन और किले में, विस्तारणीयता डिफ़ॉल्ट है, और सिस्टम के अंतर्निहित कार्य सभी सामान्य और विस्तारणीय हैं। डायलन में, एकाधिक प्रेषण उतना ही मौलिक है जितना जूलिया में है: सभी उपयोगकर्ता परिभाषित कार्य और यहां तक ​​​​कि बुनियादी अंतर्निहित संचालन जैसे + सामान्य हैं। डायलन की प्रकार प्रणाली, हालांकि, पूरी तरह से पैरामीट्रिक प्रकारों का समर्थन नहीं करती है, जो #ML आधारित प्रोग्रामिंग लैंग्वेज की पीढ़ीगत सूची के अधिक विशिष्ट हैं। डिफ़ॉल्ट रूप से, सीएलओएस सामान्य लिस्प के पैरामीट्रिक प्रकारों पर प्रेषण की अनुमति नहीं देता है; इस तरह के विस्तारित प्रेषण शब्दार्थ को केवल कॉमन लिस्प ऑब्जेक्ट सिस्टम # मेटाओबजेक्ट प्रोटोकॉल के माध्यम से एक विस्तार के रूप में जोड़ा जा सकता है। अभिसरण डिजाइन द्वारा, किले में पैरामीट्रिक प्रकारों पर कई प्रेषण भी सम्मिलित हैं; जूलिया के विपरीत, हालांकि, अलग-अलग संकलन और निष्पादन चरणों के साथ, किले को गतिशील रूप से टाइप करने के बजाय स्थिर रूप से टाइप किया गया है। लैंग्वेज सुविधाओं को निम्नलिखित तालिका में संक्षेपित किया गया है:

लैंग्वेज सिस्टम टाइप जेनेरिक  फंक्शन्स पैरामीट्रिक  टाइप
Julia Dynamic Default Yes
Common Lisp Dynamic Opt-in Yes (but no dispatch)
Dylan Dynamic Default Partial (no dispatch)
Fortress Static Default Yes

जूलिया की व्यापकता का एक उदाहरण, Unitful.jl पैकेज लैंग्वेज में माप की भौतिक इकाई के लिए समर्थन जोड़ता है।

इंटरेक्शन

जूलिया आधिकारिक वितरण में एक इंटरैक्टिव कमांड-लाइन रीड-ईवल-प्रिंट लूप (आरईपीएल) सम्मिलित है,[100] खोजने योग्य इतिहास, कमांड-लाइन पूर्णता, और समर्पित सहायता और शेल (संगणनीयता) मोड के साथ,[101] जिसका उपयोग कूट को जल्दी से प्रयोग और परीक्षण करने के लिए किया जा सकता है।[102] निम्नलिखित टुकड़ा नमूना सत्र उदाहरण का प्रतिनिधित्व करता है जहां स्ट्रिंग स्वचालित रूप से प्रिंटलाइन द्वारा संयोजित होती हैं:[103] <वाक्यविन्यास लैंग = jlcon> जूलिया> पी (एक्स) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y जूलिया> प्रिंट्लन (हैलो वर्ल्ड!, मैं क्लाउड पर हूं, एफ (0, 4), क्योंकि जूलिया पहचानने योग्य सिंटैक्स का समर्थन करता है!) हैलो वर्ल्ड! मैं क्लाउड 9 पर हूं क्योंकि जूलिया पहचानने योग्य सिंटैक्स का समर्थन करती है! </वाक्यविन्यास हाइलाइट>

आरईपीएल उपयोगकर्ता को सिस्टम शेल और मदद मोड तक, दबाकर पहुंच प्रदान करता है ; या ? प्रांप्ट के बाद (प्रत्येक कमांड से पहले), क्रमशः। यह सत्रों के बीच सहित आदेशों का इतिहास भी रखता है।[104] जूलिया के इंटरैक्टिव सत्र के अंदर कूट का परीक्षण किया जा सकता है या फ़ाइल में सहेजा जा सकता है .jl एक्सटेंशन और टाइप करके कमांड लाइन से चलाएँ:[99]

<वाक्यविन्यास लैंग = कंसोल>

$ जूलिया <फ़ाइल का नाम>

</वाक्यविन्यास हाइलाइट>

जूलिया UTF-8 का उपयोग करती है, उदा. स्रोत कूट के लिए, जिसका अर्थ कई ऑपरेटरों के लिए एक विकल्प के रूप में सामान्य गणित प्रतीकों की अनुमति भी है, जैसे कि ∈ के लिए in ऑपरेटर, के साथ टाइप करने योग्य \in फिर दबाना Tab ↹ (यानी LaTeX कूट का उपयोग करता है, या केवल कॉपी-पेस्ट करके भी संभव है, उदा। √ and ∛ वर्गमूल और घनमूल कार्यों के लिए संभव)। जूलिया को यूनिकूट 14.0 (2021 से, और 1.9-DEV नवीनतम यूनिकूट 15.0 का समर्थन करता है) के लिए समर्थन प्राप्त है[105]), विश्व की लैंग्वेज के लिए, यहां तक ​​कि स्रोत कूट के लिए भी, उदा. चर नाम (अंग्रेज़ी का उपयोग नहीं करते समय दूसरों के पढ़ने के लिए कूट के लिए अनुशंसित नहीं है जैसे पैकेज नाम)।[106] जूलिया को प्रोजेक्ट ज्यूपिटर का समर्थन प्राप्त है, जो एक ऑनलाइन इंटरैक्टिव नोटबुक वातावरण है।[107] और Pluto.jl, एक प्रतिक्रियाशील नोटबुक (जहां नोटबुक को शुद्ध जूलिया फ़ाइलों के रूप में सहेजा जाता है), पूर्व प्रकार के लिए एक संभावित प्रतिस्थापन।[108] इसके अलावा पॉज़िट (पूर्व में RStudio Inc) का क्वार्टो पब्लिशिंग सिस्टम जूलिया, पायथन, आर और ऑब्जर्वेबल जावास्क्रिप्ट का समर्थन करता है (उन लैंग्वेज को कंपनी द्वारा आधिकारिक समर्थन प्राप्त है, और यहां तक ​​कि एक ही नोटबुक दस्तावेज़ में एक साथ बुना जा सकता है, अधिक लैंग्वेजएँ अनौपचारिक रूप से समर्थित हैं)।[109][110] आरईपीएल को अतिरिक्त मोड के साथ बढ़ाया जा सकता है, और पैकेज के साथ किया गया है, उदा। SQL मोड के साथ,[111] डेटाबेस एक्सेस के लिए, और RCall.jl एक जोड़ता है R mode, R (प्रोग्रामिंग लैंग्वेज) के साथ कार्य करने के लिए।[112]


अन्य लैंग्वेज के साथ प्रयोग

जूलिया अन्य लैंग्वेज के साथ व्यवहार में है (उदाहरण के लिए लोकप्रिय उपयोग में शीर्ष 10-20 लैंग्वेज में से अधिकांश)। जूलिया के ccall कीवर्ड का उपयोग व्यक्तिगत रूप से साझा लाइब्रेरी कार्यों को कॉल करने के लिए किया जाता है (जैसे सी या फोरट्रान में लिखे जाने के लिए), और पैकेज अन्य लैंग्वेज को कॉल करने की अनुमति देने के लिए उपलब्ध हैं (जो सी-निर्यात प्रदान नहीं करते हैं) सीधे कार्य करता है) उदा। Python (PythonCall.jl के साथ), R, MATLAB, C# (और अन्य .NET लैंग्वेजएँ DotNET.jl के साथ, उनमें से JdotNET के साथ), JavaScript, Java (और अन्य JVM लैंग्वेजएँ, जैसे JavaCall.jl के साथ Scala)।[113] और अन्य लैंग्वेज के पैकेज जूलिया को कॉल करने की अनुमति देते हैं, उदा। पायथन, आर, जंग (प्रोग्रामिंग लैंग्वेज), रूबी या सी # से। जैसे juliacall (PythonCall.jl का हिस्सा, pyjulia एक अलग विकल्प है) के साथ Python से कॉल करने के लिए और R. जूलिया के लिए एक अलग जूलियाकॉल पैकेज का उपयोग हार्डवेयर के लिए भी किया गया है, यानी VHDL को संकलित करने के लिए, एक उच्च-स्तरीय संश्लेषण के रूप में (HLS) टूल (उदाहरण के लिए फील्ड-प्रोग्रामेबल गेट ऐरे)। <रेफरी नाम = HLS/FPGA />

जूलिया के पास HTML (और HTTP के लिए भी), XML, JSON और BSON जैसी मार्कअप लैंग्वेज का समर्थन करने वाले पैकेज हैं, और डेटाबेस के लिए (जैसे PostgreSQL,[114] मोंगो,[115]Oracle, TimesTen सहित,[116] MySQL, SQLite, Microsoft SQL सर्वर,[115] अमेज़ॅन रेडशिफ्ट, वर्टिका, ओडीबीसी) और सामान्य रूप से वेब का उपयोग।[117][118]


पैकेज सिस्टम

जूलिया के पास एक अंतर्निहित पैकेज मैनेजर है और इसमें एक डिफ़ॉल्ट रजिस्ट्री सिस्टम सम्मिलित है।[119] संकुल को अक्सर गिटहब पर होस्ट किए गए स्रोत कूट के रूप में वितरित किया जाता है, हालांकि विकल्पों का भी उपयोग किया जा सकता है। कलाकृतियों का उपयोग करके संकुल को बायनेरिज़ के रूप में भी स्थापित किया जा सकता है।[120] जूलिया के पैकेज मैनेजर का उपयोग पैकेजों को क्वेरी और संकलित करने के साथ-साथ पर्यावरण को प्रबंधित करने के लिए किया जाता है। फ़ेडरेटेड पैकेज रजिस्ट्रियों का समर्थन किया जाता है, जिससे अधिकारी के अलावा अन्य रजिस्ट्रियों को स्थानीय रूप से जोड़ा जा सकता है।[121]


कार्यान्वयन

जूलिया का कोर जूलिया और सी (प्रोग्रामिंग लैंग्वेज) में लागू किया गया है, एलएलवीएम निर्भरता के लिए सी ++ के साथ। कूट पार्सिंग और कूट-लोअरिंग वर्तमान में FemtoLisp, एक योजना (प्रोग्रामिंग लैंग्वेज) बोली में कार्यान्वित की जाती हैं।[122] हालांकि, FemtoLisp पार्सर को प्योर-जूलिया पैकेज जूलिया सिंटेक्स.जेएल के साथ रनटाइम पर स्विच आउट किया जा सकता है,[123] जो गति में सुधार करता है और विभिन्न मामलों में पार्सर त्रुटि संदेशों में काफी सुधार करता है, और FemtoLisp पार्सर को संस्करण 1.10 से बदल देगा।[124] एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर प्रोजेक्ट का उपयोग सभी सामान्य रूप से उपयोग किए जाने वाले प्लेटफॉर्म के लिए अनुकूलित यन्त्र कूट उत्पन्न करने के लिए कंपाइलर # बैक एंड के रूप में किया जाता है। कुछ अपवादों के साथ, जूलिया में मानक लाइब्रेरी लागू किया गया है।

वर्तमान और भविष्य के प्लेटफॉर्म

जूलिया के पास टियर 1 macOS समर्थन है, जिसका अर्थ Intel-आधारित Macs के लिए है, परन्तु नए Apple M1-आधारित Macs के लिए भी है, या तो रोसेट्टा 2 एमुलेशन में चल रहा है,[16][125] या, तब, जूलिया 1.8 के साथ टियर 2 नेटिव (गैर-रोसेटा) समर्थन के साथ (जूलिया के पुराने एलटीएस संस्करण के विपरीत जिसमें केवल टियर 3 (प्रायोगिक) समर्थन है; विंडोज 10 का अभी तक कोई आधिकारिक समर्थन नहीं है)। उस समर्थन पर कार्य (यानी बिना अनुकरण के) ज्यादातर किया जाता है, और कई कार्यक्रम जूलिया 1.8.0 के साथ कार्य करते हैं। जूलिया 1.8.0 से पहले कार्य करने का दावा करती थी[126] Rosetta 2 के (स्वचालित) उपयोग के माध्यम से एम1 एमआईसी पर (कम प्रदर्शन पर) ठीक है (जिसे जूलिया का अनुकरण करने की आवश्यकता है).

जूलिया के चार सपोर्ट टियर हैं।[127] P6 (माइक्रोआर्किटेक्चर) सबआर्किटेक्चर को पूरी तरह से लागू करने वाले सभी IA-32 प्रोसेसर समर्थित हैं और सभी 64-बिट एक्स 86-64, अर्थात लगभग एक दशक से कम पुराने सभी समर्थित हैं। एआरएमवी8 (एएआरसीसीएच64) प्रोसेसर दूसरे स्तर पर समर्थित हैं, और एआरएमवी7 और एआरएमवी6 (AArch32) जूलिया 1.0.x के लिए कुछ चेतावनियों (निचले स्तर) के साथ समर्थित हैं और बाद के संस्करणों के लिए आधिकारिक निष्पादनयोग्य भी थे, जबकि 32-बिट ARM समर्थन को बाद में डाउनग्रेड किया गया था टियर 3 तक (हालांकि, जूलिया 1.5.1 के लिए अनौपचारिक बायनेरिज़ उपलब्ध हैं[128]).[129] ग्राफिक्स प्रसंस्करण इकाइयों पर सैकड़ों पैकेज सामान्य-उद्देश्य संगणनीयता हैं। जीपीयू-त्वरित:[130] सीयूडीए (यानी एनवीडिया जीपीयू; समानांतर थ्रेड एक्ज़ीक्यूशन लागू करना) में बाहरी पैकेज की मदद से टियर 1 सपोर्ट है। अन्य त्वरक का समर्थन करने वाले अतिरिक्त पैकेज भी हैं, जैसे कि Google की टेंसर प्रोसेसिंग यूनिट,[131] और कुछ इंटेल (एकीकृत) जीपीयू, वन एपीआई (गणना त्वरण) के माध्यम से | वन एपीआई.जेआई,[132] और एएमडी के जीपीयू का समर्थन है उदाहरण :ओपनसीएल; और AMD आरओसीएम स्टैक के लिए प्रायोगिक समर्थन।[133] जूलिया का डाउनलोड पेज सभी आधिकारिक रूप से समर्थित प्लेटफॉर्म के लिए निष्पादन योग्य (और स्रोत) प्रदान करता है।

कुछ प्लेटफार्मों पर, जूलिया को विशिष्ट निर्माण विकल्पों के साथ स्रोत कूट (जैसे, मूल रास्पबेरी पाई) से संकलित करने की आवश्यकता हो सकती है, जो किया गया है और अनौपचारिक पूर्व-निर्मित बायनेरिज़ (और निर्माण निर्देश) उपलब्ध हैं।[134][135] जूलिया बनाया गया है छोटे रस्प्बेर्री पिस से लेकर टॉप-1 सुपरकंप्यूटर फुगकू (सुपरकंप्यूटर) के एआरएम-आधारित फुजिस्तु ए64Fएक्स तक कई एआरएम प्लेटफार्मों के लिए।[136] पॉवर पी सी (64-बिट) में टियर 3 सपोर्ट है, जिसका अर्थ है कि यह .

जूलिया अब रस्पबियन में समर्थित है[137] जबकि समर्थन नए Pis के लिए बेहतर है, उदाहरण के लिए, एआरएमवी7 या नए के साथ; जूलिया सपोर्ट को रास्पबेरी पाई फाउंडेशन द्वारा बढ़ावा दिया जाता है।[138] JSExpr.jl के माध्यम से वेब ब्राउज़र/जावास्क्रिप्ट के लिए भी समर्थन है;[93] और वेब ब्राउज़र की वैकल्पिक लैंग्वेज, वेब असेंबली को न्यूनतम समर्थन प्राप्त है[18] कई आगामी बाहरी जूलिया परियोजनाओं के लिए।


जूलिया एआरएम को संकलित कर सकती है; इस प्रकार, सिद्धांत रूप में, एनड्रॉयड ऐप्स को एनड्रॉयड सॉफ़्टवेयर डेवलपमेंट एनड्रॉयड एनडीके के साथ बनाया जा सकता है, परन्तु अभी के लिए जूलिया को केवल अप्रत्यक्ष रूप से एनड्रॉयड (ऑपरेटिंग सिस्टम) के तहत चलाने के लिए बनाया गया है, यानी एनड्रॉयड पर उबंतू च्रूट के साथ।[139] जबकि जूलिया को डिफ़ॉल्ट रूप से एक ऑपरेटिंग सिस्टम की आवश्यकता होती है, और बिना Arduino जैसे अंतः स्थापित प्रणाली प्लेटफॉर्म पर चलाने के लिए कोई आधिकारिक समर्थन नहीं है, जूलिया कूट अभी भी कुछ सीमाओं के साथ, एक नंगे धातु 16 हर्ट्ज संगणक 8-बिट संगणनीयता पर चलाया गया है। बिट एवीआर माइक्रोकंट्रोलर | एवीआर-माइक्रोकंट्रोलर अरुडिनो 2 केबी रैम (प्लस 32 केबी फ्लैश मेमोरी) के साथ।[140]


दत्तक ग्रहण

जूलिया को एमआईटी, स्टैनफोर्ड यूनिवर्सिटी और यूसी बर्कले सहित कई विश्वविद्यालयों में अपनाया गया है। कई क्षेत्रों में बड़ी निजी फर्मों ने अमेज़ॅन (कंपनी), आईबीएम, जेपी मॉर्गन और एएसएमएल होल्डिंग सहित लैंग्वेज को अपनाया है। जूलिया का उपयोग नासा और फेडरल एविएशन एडमिनिस्ट्रेशन के साथ-साथ हर अमेरिकी राष्ट्रीय ऊर्जा प्रयोगशाला सहित सरकारी एजेंसियों द्वारा भी किया गया है।[141][142]


वैज्ञानिक संगणनीयता

  • क्लाइमेट मॉडलिंग एलायंस ने जलवायु परिवर्तन के प्रभावों और चुनौतियों के बारे में जानकारी प्रदान करने के लिए अपनी अगली पीढ़ी के वैश्विक जलवायु मॉडल को लागू करने के लिए जूलिया का चयन किया।Cite error: Closing </ref> missing for <ref> tag[143] लार्ज हैड्रान कोलाइडर (एलएचसीबी प्रयोग) से डेटा का विश्लेषण करने के लिए।[144][145][146]


औषधि और दवा विकास

जूलिया का फार्मास्युटिकल उद्योग में दवा के विकास के लिए व्यापक रूप से उपयोग किया जाता है, जिसे आधुनिक, फाइजर, एस्ट्राजेनेका, प्रॉक्टर एंड गैंबल और यूनाइटेड थेराप्यूटिक्स द्वारा अपनाया गया है।[147][148]


अंतरिक्ष अभियांत्रिकी

  • ब्राज़ीलियाई राष्ट्रीय अंतरिक्ष अनुसंधान संस्थान जूलिया का उपयोग अंतरिक्ष अभियानों की योजना बनाने और उपग्रहों का अनुकरण करने के लिए करता है।[149]
  • स्वायत्त यू.एस. वायुसेना अनुसंधान प्रयोगशाला वीटीओएल मानव रहित विमान प्रणाली की उड़ान की योजना बनाने और निष्पादित करने के लिए एम्बेडेड सिस्टम हार्डवेयर।[150]
  • नासा और जेट प्रणोदन प्रयोगशाला जूलिया का उपयोग अंतरिक्ष यान पृथक्करण गतिकी को प्रारूपित करने के लिए करती है,[151][152][153]


अन्य उल्लेखनीय उपयोग

फेडरल रिजर्व बैंक ऑफ न्यूयॉर्क ने 2015 में जूलिया में व्यापक आर्थिक मॉडल (मैटलैब से पोर्ट किए गए) और 2021 में कोविड-19 के झटके का अनुमान लगाने के लिए बनाया[154]


यह भी देखें

टिप्पणियाँ

  1. [With Rebugger.jl] it is possible to:
    • test different modifications to the code or arguments without exiting "debug mode" or saving the file
    • run the same chosen block of code repeatedly without needing to repeat "setup" work placing nested method in the original call stack.[41]
  2. For calling Python 3 (the older default to call Python 2, is also still supported)[94][95] and calling in the other direction, from Python to Julia, is also supported with pyjulia.[96]


संदर्भ

  1. "Smoothing data with Julia's @generated functions". 5 November 2015. Retrieved 9 December 2015. Julia's generated functions are closely related to the multistaged programming (MSP) paradigm popularized by Taha and Sheard, which generalizes the compile time/run time stages of program execution by allowing for multiple stages of delayed code execution.
  2. "2. Object-Oriented Programming - Beginning Julia Programming: For Engineers and Scientists [Book]". www.oreilly.com (in English). Retrieved 2023-01-26.
  3. 3.0 3.1 "LICENSE.md". GitHub. September 2017.
  4. "Contributors to JuliaLang/julia". GitHub.
  5. 5.0 5.1 5.2 5.3 5.4 5.5 "Why We Created Julia". Julia website. February 2012. Retrieved 7 February 2013.
  6. "Backports for Juila 1.9.0-beta4 by KristofferC · Pull Request #48311 · JuliaLang/julia". GitHub (in English). Retrieved 2023-02-10.
  7. "Backports for julia 1.9.0-beta3 by KristofferC · Pull Request #48075 · JuliaLang/julia". GitHub (in English). Retrieved 2023-01-04.
  8. "Releases · JuliaLang/julia". GitHub (in English). Retrieved 2023-01-04.
  9. "GitHub - JuliaLang/julia at release-1.6". GitHub (in English). Retrieved 2022-07-19.
  10. "release-1.6: Backports for 1.6.7 by KristofferC · Pull Request #45319 · JuliaLang/julia". GitHub (in English). Retrieved 2022-05-16.
  11. "Backports for Julia 1.8.6 by KristofferC · Pull Request #48556 · JuliaLang/julia". GitHub (in English). Retrieved 2023-02-10.
  12. "Set VERSION to 1.10.0-DEV by KristofferC · Pull Request #47222 · JuliaLang/julia". GitHub (in English). Retrieved 2022-10-19.
  13. 13.0 13.1 Engheim, Erik (2017-11-17). "Dynamically Typed Languages Are Not What You Think". Medium (in English). Retrieved 2021-01-27.
  14. "Building Julia (Detailed)". GitHub. September 2017. Retrieved 2022-05-16.
  15. "NVIDIA CUDA ⋅ JuliaGPU". juliagpu.org. Retrieved 2022-01-17. we have shown the performance to approach and even sometimes exceed that of CUDA C on a selection of applications from the Rodinia benchmark suite
  16. 16.0 16.1 "Julia v1.7.3 has been released". JuliaLang (in English). 2022-05-25. Retrieved 2022-05-26.
  17. "External Method Tables by Keno · Pull Request #39697 · JuliaLang/julia". GitHub (in English). Retrieved 2021-06-09.
  18. 18.0 18.1 18.2 Fischer, Keno (2019-07-22). "Running julia on wasm". GitHub. Retrieved 2019-07-25.
  19. "julia/julia.spdx.json". GitHub. September 2017. Retrieved 2022-05-16.
  20. "Non-GPL Julia?". Groups.google.com. Retrieved 2017-05-31.
  21. "Introduce USE_GPL_LIBS Makefile flag to build Julia without GPL libraries". GitHub. Note that this commit does not remove GPL utilities such as git and busybox that are included in the Julia binary installers on Mac and Windows. It allows building from source with no GPL library dependencies.
  22. Stokel-Walker, Chris. "Julia: The Goldilocks language". Increment. Stripe. Retrieved 23 August 2020.
  23. 23.0 23.1 23.2 23.3 "Home · The Julia Language". docs.julialang.org (in English). Retrieved 2018-08-15.
  24. "Programming Language Network". GitHub. Retrieved 6 December 2016.
  25. "What Should We Call the Language of Mathematica?—Stephen Wolfram Writings". writings.stephenwolfram.com (in English). Retrieved 2021-06-24.
  26. "JuliaCon 2016". JuliaCon. Retrieved 6 December 2016. He has co-designed the programming language Scheme, which has greatly influenced the design of Julia
  27. Bryant, Avi (15 October 2012). "Matlab, R, and Julia: Languages for data analysis". O'Reilly Strata. Archived from the original on 2014-04-26.
  28. Singh, Vicky (23 August 2015). "Julia Programming Language – A True Python Alternative". Technotification.
  29. 29.0 29.1 Krill, Paul (18 April 2012). "New Julia language seeks to be the C for scientists". InfoWorld.
  30. Finley, Klint (3 February 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All". Wired.
  31. "GitHub - JuliaParallel/MPI.jl: MPI wrappers for Julia". Parallel Julia. Retrieved 2019-09-22.
  32. "Questions about getting started with parallel computing". JuliaLang (in English). 2019-06-16. Retrieved 2019-10-08.
  33. Fischer, Keno; Nash, Jameson. "Growing a Compiler - Getting to Machine Learning from a General Purpose Compiler - JuliaHub". juliahub.com. Retrieved 2022-11-16.
  34. "Creating a sysimage". PackageCompiler Documentation.
  35. "Suspending Garbage Collection for Performance...good idea or bad idea?". Groups.google.com. Retrieved 2017-05-31.
  36. now available with using FFTW in current versions (That dependency, is one of many which, was moved out of the standard library to a package because it is GPL licensed, and thus is not included in Julia 1.0 by default.) "Remove the FFTW bindings from Base by ararslan · Pull Request #21956 · JuliaLang/julia". GitHub (in English). Retrieved 2018-03-01.
  37. "Julia for Visual Studio Code". www.julia-vscode.org. Retrieved 2022-07-17.
  38. Holy, Tim (2019-09-13). "GitHub - timholy/ProfileView.jl: Visualization of Julia profiling data". GitHub. Retrieved 2019-09-22.
  39. Gregg, Brendan (2019-09-20). "GitHub - brendangregg/FlameGraph: Stack trace visualizer". GitHub. Retrieved 2019-09-22.
  40. "A Julia interpreter and debugger". julialang.org. Retrieved 2019-04-10.
  41. "[ANN] Rebugger: interactive debugging for Julia 0.7/1.0". JuliaLang (in English). 2018-08-21. Retrieved 2019-04-10.
  42. "Home · Rebugger.jl". timholy.github.io. Retrieved 2019-04-10.
  43. Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman. "Why We Created Julia". JuliaLang.org. Retrieved 5 June 2017.{{cite web}}: CS1 maint: uses authors parameter (link)
  44. Torre, Charles. "Stefan Karpinski and Jeff Bezanson on Julia". Channel 9. MSDN. Retrieved 4 December 2018.
  45. "Newsletter August 2021 - Julia Computing Completes $24 Million Series A Fundraise and Former Snowflake CEO Bob Muglia Joins Julia Computing Board of Directors - JuliaHub". juliahub.com. Retrieved 2022-11-16.
  46. "JuliaCon 2020 Wrap-up". julialang.org. 2020-08-11. Retrieved 2020-12-20.
  47. "JuliaCon 2021 Highlights". julialang.org (in English). Retrieved 2021-09-06.
  48. "Julia language co-creators win James H. Wilkinson Prize for Numerical Software". MIT News. Retrieved 2019-01-22.
  49. "Alan Edelman of MIT Recognized with Prestigious 2019 IEEE Computer Society Sidney Fernbach Award | IEEE Computer Society" (Press release) (in English). 1 October 2019. Retrieved 2019-10-09.
  50. "What is Julia 0.7? How does it relate to 1.0?". JuliaLang (in English). 26 March 2018. Retrieved 2018-10-17.
  51. Davies, Eric. "Writing Iterators in Julia 0.7". julialang.org. Retrieved 2018-08-05.
  52. "Sys.isjsvm([os])". The Julia Language. 2019-08-20. Retrieved 2019-08-20. Predicate for testing if Julia is running in a JavaScript VM (JSVM), including e.g. a WebAssembly JavaScript embedding in a web browser.
  53. Bezanson, Jeff; Karpinski, Stefan; Shah, Viral; Edelman, Alan. "The Julia Language". julialang.org. Retrieved 2019-12-13.
  54. "support a[begin] for a[firstindex(a)] by stevengj · Pull Request #33946 · JuliaLang/julia". GitHub (in English). Retrieved 2020-04-07.
  55. quinnj. "For structs with all isbits or isbitsunion fields, allow them to be stored inline in arrays · Pull Request #32448 · JuliaLang/julia". GitHub (in English). Retrieved 2020-04-07. I still keep running into problems that this causes internally because it was a breaking change that changes assumptions made by some users and inference/codegen.
  56. Fischer, Keno (2 May 2020). "Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting". julialang.org (in English). Retrieved 2020-05-05. Overhead for recording of single threaded processes is generally below 2x, most often between 2% and 50% (lower for purely numerical calculations, higher for workloads that interact with the OS). Recording multiple threads or processes that share memory (as opposed to using kernel-based message passing) is harder. [..] As expected, the threads test is the worst offender with about 600% overhead.
  57. Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman et al. "The Julia Language". julialang.org (in English). Retrieved 2020-08-14. There are some size-based limits to which structs can be stack allocated, but they are unlikely to be exceeded in practice.{{cite web}}: CS1 maint: uses authors parameter (link)
  58. Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman et al. "The Julia Language". julialang.org (in English). Retrieved 2020-09-16.{{cite web}}: CS1 maint: uses authors parameter (link)
  59. Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman et al. "Julia 1.6 Highlights". julialang.org (in English). Retrieved 2021-03-26.{{cite web}}: CS1 maint: uses authors parameter (link)
  60. "Upgrade to OpenBLAS 0.3.13 · Pull Request #39216 · JuliaLang/julia". GitHub (in English). Retrieved 2021-04-26. Given that 1.7 is not too far away (timed releases going forward)
  61. "[Zlib_jll] Update to v1.2.12+3 by giordano · Pull Request #44810 · JuliaLang/julia". GitHub (in English). Retrieved 2022-05-25.
  62. "Backports for Julia 1.8.5 by KristofferC · Pull Request #48011 · JuliaLang/julia". GitHub (in English). Retrieved 2023-01-08.
  63. "compiler: speed up bootstrapping time by 25% by aviatesk · Pull Request #41794 · JuliaLang/julia". GitHub (in English). Retrieved 2022-03-03. the bootstrapping took about 80 seconds previously, but on this PR the time is reduced to about 60 seconds.
  64. "Milestones - JuliaLang/julia". GitHub (in English). Retrieved 2022-08-27.
  65. "The future of Julia, 1.6, 1.7-rc1, 1.8, 1.9, 1.10 and 2.0 and LTS". JuliaLang (in English). 2021-09-14. Retrieved 2022-01-17. I suspect at some point 1.x work will slow down a bit and we'll get some more capacity to stop and think about 2.0 kinds of changes, but that time just hasn't happened yet.
  66. "JuliaCon 2014". juliacon.org. Retrieved 2021-06-20.
  67. "JuliaCon 2016 at MIT". mit.edu. Retrieved 2021-06-20.
  68. "JuliaCon 2019 at UMB". technical.ly. 23 July 2019. Retrieved 2021-06-20.
  69. "JuliaCon 2020 wrap up". julialang.org. Retrieved 2021-06-20.
  70. "JuliaCon 2021". Juliacon.org. Retrieved 2021-06-20.
  71. "JuliaCon 2021 Highlights". julialang.org (in English). Retrieved 2022-03-03. This year's JuliaCon was the biggest and best ever, with more than 300 presentations available for free on YouTube, more than 20,000 registrations, and more than 43,000 unique YouTube viewers during the conference, up from 162 presentations, 10,000 registrations, and 28,900 unique YouTube viewers during last year's conference.
  72. "Jan Vitek Homepage". janvitek.org. Retrieved 2021-06-20.
  73. "Soumith Chintala Homepage". soumith.ch. Retrieved 2021-06-20.
  74. "Julia: NumFOCUS Sponsored Project since 2014". numfocus.org. Retrieved 2020-09-29.
  75. "The Julia Language". julialang.org. Retrieved 2019-09-22.
  76. Cimpanu, Catalin. "Mozilla is funding a way to support Julia in Firefox". ZDNet (in English). Retrieved 2019-09-22.
  77. "Julia in Iodide". alpha.iodide.io. Retrieved 2019-09-22.
  78. "Language plugins - Iodide Documentation". iodide-project.github.io. Retrieved 2019-09-22.
  79. "Mozilla Research Grants 2019H1". Mozilla (in English). Retrieved 2019-09-22. running language interpreters in WebAssembly. To further increase access to leading data science tools, we're looking for someone to port R or Julia to WebAssembly and to attempt to provide a level 3 language plugin for Iodide: automatic conversion of data basic types between R/Julia and Javascript, and the ability to share class instances between R/Julia and Javascript.
  80. "Literate scientific computing and communication for the web: iodide-project/iodide". iodide. 2019-09-20. Retrieved 2019-09-22. We envision a future workflow that allows you to do your data munging in Python, fit a quick model in R or JAGS, solve some differential equations in Julia, and then display your results with a live interactive d3+JavaScript visualization ... and all that within within a single, portable, sharable, and hackable file.
  81. "Sponsor the Julia Language". github.com. Retrieved 2021-06-05.
  82. "About Us – Julia Computing". juliacomputing.com. Retrieved 2017-09-12.
  83. "About Us - JuliaHub". juliahub.com. Retrieved 2022-11-16.
  84. "Julia Computing Raises $4.6M in Seed Funding". Archived from the original on 2019-05-10.
  85. "Julia Computing Awarded $910,000 Grant by Alfred P. Sloan Foundation, Including $160,000 for STEM Diversity". juliacomputing.com. 2017-06-26. Retrieved 2020-07-28.
  86. "DIFFERENTIATE—Design Intelligence Fostering Formidable Energy Reduction (and) Enabling Novel Totally Impactful Advanced Technology Enhancements" (PDF).
  87. "Julia Computing raises $24 mln in funding round led by Dorilton Ventures". Reuters. 19 July 2021.
  88. "Williams welcomes Julia Computing as Dorilton Ventures partner". www.williamsf1.com (Press release) (in English). Retrieved 2021-09-02.
  89. "The Julia Language" (official website). General Purpose [..] Julia lets you write UIs, statically compile your code, or even deploy it on a webserver.
  90. Green, Todd (10 August 2018). "Low-Level Systems Programming in High-Level Julia". Archived from the original on 5 November 2018. Retrieved 5 November 2018.
  91. Moss, Robert (26 June 2015). "Using Julia as a Specification Language for the Next-Generation Airborne Collision Avoidance System" (PDF). Archived from the original on 1 July 2015. Retrieved 29 June 2015. Airborne collision avoidance system
  92. Anthoff, David (2019-06-01). "Node.js installation for julia". GitHub. Retrieved 2019-07-25.
  93. 93.0 93.1 "Translate Julia to JavaScript". JuliaGizmos. 2019-07-07. Retrieved 2019-07-25.
  94. "PyCall.jl". stevengj. github.com. 7 November 2021.
  95. "Using PyCall in julia on Ubuntu with python3". julia-users at Google Groups. to import modules (e.g., python3-numpy)
  96. "python interface to julia". GitHub. 6 November 2021.
  97. "GitHub - JuliaLang/PackageCompiler.jl: Compile your Julia Package". The Julia Language. 2019-02-14. Retrieved 2019-02-15.
  98. ObjectOriented, TongYuan, 2023-01-24, retrieved 2023-01-26
  99. 99.0 99.1 "Learn Julia in Y Minutes". Learnxinyminutes.com. Retrieved 2017-05-31.
  100. "The Julia REPL · The Julia Language". docs.julialang.org. Retrieved 2019-09-22.
  101. "Introducing Julia/The REPL - Wikibooks, open books for an open world". en.wikibooks.org. Retrieved 2019-09-22. you can install the Julia package OhMyREPL.jl [..] which lets you customize the REPL's appearance and behaviour
  102. "Getting Started · The Julia Language". docs.julialang.org (in English). Retrieved 2018-08-15.
  103. See also: docs.julialang.org/en/v1/manual/strings/ for string interpolation and the string(greet, ", ", whom, ".\n") example for preferred ways to concatenate strings. Julia has the println and print functions, but also a @printf macro (i.e., not in function form) to eliminate run-time overhead of formatting (unlike the same function in C).
  104. "Julia Documentation". JuliaLang.org. Retrieved 18 November 2014.
  105. "support Unicode 15 via utf8proc 2.8 by stevengj · Pull Request #47392 · JuliaLang/julia". GitHub (in English). Retrieved 2022-11-03.
  106. "support Unicode 14.0.0 (via utf8proc 2.7.0)". Github (in English). 2022-10-21. Retrieved 2022-11-03.{{cite web}}: CS1 maint: url-status (link)
  107. "Project Jupyter".
  108. Boudreau, Emmett (2020-10-16). "Could Pluto Be A Real Jupyter Replacement?". Medium (in English). Retrieved 2020-12-08.
  109. Machlis, Sharon (2022-07-27). "RStudio changes name to Posit, expands focus to include Python and VS Code". InfoWorld (in English). Retrieved 2023-01-18.
  110. "Heads up! Quarto is here to stay. Immediately combine R & Python in your next document: An extension on a recent post". ds-econ (in English). 2022-07-20. Retrieved 2023-01-18.
  111. Foster, Chris (2022-04-04). "SQLREPL.jl". GitHub. Retrieved 2022-09-27.
  112. "Getting Started · RCall.jl". juliainterop.github.io. Retrieved 2022-09-27.
  113. "Julia and Spark, Better Together". juliacomputing.com. 2020-06-02. Retrieved 2020-07-14.
  114. "Home · LibPQ.jl". invenia.github.io. Retrieved 2022-11-08.
  115. 115.0 115.1 "Home · FunSQL.jl". docs.juliahub.com. Retrieved 2022-11-08.
  116. Hood, Doug (21 October 2022). "Using Julia with Oracle Databases".
  117. "Genie Builder - Visual Studio Marketplace". marketplace.visualstudio.com (in English). Retrieved 2022-11-08.
  118. "How to Build Your First Web App in Julia with Genie.jl 🧞‍♂️". freeCodeCamp.org (in English). 2022-02-01. Retrieved 2022-11-08.
  119. "JuliaRegistries / General". GitHub. Retrieved 2020-04-30.
  120. "Pkg.jl - Artifacts". Retrieved 2020-06-04.
  121. "Pkg.jl - Registries". Retrieved 2020-04-30.
  122. Bezanson, Jeff (6 June 2019). "JeffBezanson/femtolisp". GitHub. Retrieved 16 June 2019.
  123. "JuliaSyntax". The Julia Programming Language. 2022-08-28. Retrieved 2022-08-28.
  124. "Enable JuliaSyntax.jl as an alternative Julia parser by c42f · Pull Request #46372 · JuliaLang/julia". GitHub (in English). Retrieved 2022-08-28.
  125. "Darwin/ARM64 tracking issue · Issue #36617 · JuliaLang/julia". GitHub (in English). Retrieved 2020-12-08.
  126. Carlton, Sam (2020-12-08). "ThatGuySam/doesitarm". GitHub. Retrieved 2020-12-08.
  127. "Julia Downloads". julialang.org. Retrieved 2019-05-17.
  128. "Bring Julia code to embedded hardware (ARM)". JuliaLang (in English). 2019-01-23. Retrieved 2021-03-30.
  129. "julia/arm.md". The Julia Language. 2021-10-07. Retrieved 2022-05-15. A list of known issues for ARM is available.
  130. "JuliaGPU". juliagpu.org. Retrieved 2022-11-16. Almost 300 packages rely directly or indirectly on Julia's GPU capabilities.
  131. "Julia on TPUs". JuliaTPU. 2019-11-26. Retrieved 2019-11-29.
  132. "Introducing: oneAPI.jl ⋅ JuliaGPU". juliagpu.org. Retrieved 2021-09-06.
  133. "AMD ROCm · JuliaGPU". juliagpu.org. Retrieved 2020-04-20.
  134. "Build Julia for RaspberryPi Zero". Gist (in English). Retrieved 2020-08-14.
  135. "JuliaBerry: Julia on the Raspberry Pi". juliaberry.github.io. Retrieved 2020-08-14.
  136. Giordano, Mosè (2022-09-29). "Julia on Fugaku (2022-07-23)". GitHub. Retrieved 2022-11-08.
  137. "Julia available in Raspbian on the Raspberry Pi". Julia works on all the Pi variants, we recommend using the Pi 3.
  138. "Julia language for Raspberry Pi". Raspberry Pi Foundation. 12 May 2017.
  139. "Using Julia on Android?". JuliaLang (in English). 2019-09-27. Retrieved 2019-10-02.
  140. "Running Julia baremetal on an Arduino". seelengrab.github.io. Retrieved 2022-05-24.
  141. "'Why We Created Julia' Turns Ten Years Old - JuliaHub". juliahub.com. Retrieved 2022-11-16.
  142. "Newsletter January 2022 - Julia Growth Statistics - Julia Computing". juliacomputing.com (in English). Retrieved 2022-01-26.
  143. Mikhasenko, Misha (July 2021). "Julia for QCD spectroscopy" (PDF). indico.cern.ch. Retrieved 2022-08-23. Summary: Julia is ready to be used in physics HEP analysis.
  144. "JuliaHEP/UnROOT.jl". JuliaHEP. 2022-08-19. Retrieved 2022-08-23.
  145. "Julia · Search · GitLab". GitLab (in English). Retrieved 2022-08-23.
  146. "Commits · master · sft / lcgcmake · GitLab". GitLab (in English). Retrieved 2022-08-23. bump julia version to 1.7.3
  147. "Case Study - JuliaHub". juliahub.com. Retrieved 2023-02-10.
  148. "Pumas-AI". Pumas-AI (in English). Retrieved 2023-02-10.
  149. JuliaSpace/SatelliteToolbox.jl, JuliaSpace, 2020-05-20, retrieved 2020-05-26
  150. Hobbs, Kerianne (December 2022). "Year of Autonomy in Alaskan Glaciers, Flight, Earth Orbit, Cislunar Space and Mars". Aerospace America Year in Review. p. 48. The flight test team was able to demonstrate … a vertical takeoff and landing vehicle with both electric and conventional fuel propulsion systems onboard. The [uncrewed aerial system] was able to plan and execute these missions autonomously using onboard hardware. It was the first time the Julia programming language was flown on the embedded hardware - algorithms were precompiled ahead of time.
  151. Modeling Spacecraft Separation Dynamics in Julia - Jonathan Diegelman (in English), retrieved 2021-09-06
  152. Circuitscape/Circuitscape.jl, Circuitscape, 2020-02-25, retrieved 2020-05-26
  153. "Conservation through Coding: 5 Questions with Viral Shah | Science Mission Directorate". science.nasa.gov. Retrieved 2020-05-26.
  154. "Release v1.3.0 · FRBNY-DSGE/DSGE.jl". GitHub (in English). Retrieved 2022-01-03. New subspecs of Model1002 for estimating the DSGE with COVID-19 shocks
  155. 155.0 155.1 D'Cunha, Suparna Dutt (2017-09-20). "How A New Programming Language Created By Four Scientists Now Used By The World's Biggest Companies". Forbes (in English). Archived from the original on 2022-10-01. Retrieved 2022-10-01.
  156. "Julia for Election Security" (in English). Julia Forem. Retrieved 2022-09-27.
  157. "Nobel Laureate Thomas J. Sargent - JuliaHub". juliahub.com. Retrieved 2023-02-10.


अग्रिम पठन


बाहरी संबंध