K (प्रोग्रामिंग भाषा): Difference between revisions

From Vigyanwiki
No edit summary
 
(31 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Programming language}}
{{Short description|Programming language}}
{{More citations needed|date=August 2011}}
{{Infobox programming language
{{Infobox programming language
| name = K
| name = K
Line 19: Line 18:
}}
}}


K, [[आर्थर व्हिटनी (कंप्यूटर वैज्ञानिक)]] द्वारा विकसित और Kx सिस्टम्स ( KX एक डेटा विश्लेषण सॉफ़्टवेयर डेवलपर और विक्रेता है।) द्वारा व्यावसायीकृत एक मालिकाना ऐरे प्रसंस्करण प्रोग्रामिंग भाषा है। भाषा [[केडीबी+]], एक इन-मेमोरी, कॉलम-आधारित [[डेटाबेस]] और अन्य संबंधित वित्तीय उत्पादों के लिए नींव के रूप में कार्य करती है।<ref>{{cite web|url=https://kx.com/| title=Kx Systems}}</ref> मूल रूप से 1993 में विकसित भाषा, [[एपीएल (प्रोग्रामिंग भाषा)]] का एक प्रकार है और इसमें योजना (प्रोग्रामिंग भाषा) के तत्व शामिल हैं। भाषा के पक्षसमर्थक इसकी गति, ऐरे को संभालने में सुविधा और अर्थपूर्ण वाक्य-रचना पर जोर देते हैं।<ref>{{cite web|first=Kenneth|last=Iverson|title=विचार के एक उपकरण के रूप में संकेतन|url=http://www.jsoftware.com/papers/tot.htm|access-date=2015-02-23|archive-url=https://web.archive.org/web/20130920071911/http://www.jsoftware.com/papers/tot.htm|archive-date=2013-09-20|url-status=dead}}</ref>
'''कश्मीर (प्रोग्रामिंग भाषा)''', [[आर्थर व्हिटनी (कंप्यूटर वैज्ञानिक)]] द्वारा विकसित और केएक्स सिस्टम्स ( केएक्स एक डेटा विश्लेषण सॉफ़्टवेयर डेवलपर और विक्रेता है।) द्वारा व्यावसायीकृत एक संपदा ऐरे प्रसंस्करण प्रोग्रामिंग भाषा है। भाषा [[केडीबी+]], एक मेमोरी में कॉलम-आधारित [[डेटाबेस]] और अन्य संबंधित वित्तीय उत्पादों के लिए नींव के रूप में कार्य करती है।<ref>{{cite web|url=https://kx.com/| title=Kx Systems}}</ref> मूल रूप से 1993 में विकसित भाषा, [[एपीएल (प्रोग्रामिंग भाषा)]] का एक प्रकार है और इसमें योजना (प्रोग्रामिंग भाषा) के तत्व सम्मलित हैं। भाषा के पैरोकार इसकी स्पीड, ऐरे को संभालने में सुविधा और अर्थपूर्ण वाक्यविन्यास पर जोर देते हैं।<ref>{{cite web|first=Kenneth|last=Iverson|title=विचार के एक उपकरण के रूप में संकेतन|url=http://www.jsoftware.com/papers/tot.htm|access-date=2015-02-23|archive-url=https://web.archive.org/web/20130920071911/http://www.jsoftware.com/papers/tot.htm|archive-date=2013-09-20|url-status=dead}}</ref>
== इतिहास ==
== इतिहास ==
के को विकसित करने से पहले, आर्थर व्हिटनी ने एपीएल के साथ बड़े पैमाने पर काम किया था, पहले केनेथ ई. इवरसन और [[रोजर हुई]] के साथ आईपी शार्प एसोसिएट्स में, और बाद में [[मॉर्गन स्टेनली]] में वित्तीय अनुप्रयोगों का विकास किया। मॉर्गन स्टेनली में, व्हिटनी ने [[आईबीएम]] [[ मेनफ़्रेम कंप्यूटर ]]से एपीएल अनुप्रयोगों को सन [[ कार्य केंद्र |कार्य केंद्र]] के नेटवर्क की ओर पलायन करने की सुविधा के लिए एपीएल के एक संस्करण ए+ को विकसित करने में मदद की। ए+ में आदिम कार्यों का एक छोटा सेट था और इसे गति के लिए और समय श्रृंखला डेटा के बड़े सेट को संभालने के लिए अभिकल्पित किया गया था।<ref>{{cite web|title=आर्थर जैव और साक्षात्कार|url=http://queue.acm.org/detail.cfm?id=1531242}}</ref>
K को विकसित करने से पहले, आर्थर व्हिटनी ने एपीएल के साथ बड़े पैमाने पर काम किया था, पहले केनेथ ई. इवरसन और [[रोजर हुई]] के साथ आईपी शार्प एसोसिएट्स में, और पश्चात में [[मॉर्गन स्टेनली]] में वित्तीय अनुप्रयोगों का विकास किया। मॉर्गन स्टेनली में, व्हिटनी ने [[आईबीएम]] [[ मेनफ़्रेम कंप्यूटर |मेनफ़्रेम कंप्यूटर]] से एपीएल अनुप्रयोगों को सन [[ कार्य केंद्र |कार्य केंद्र]] के नेटवर्क की ओर पलायन करने की सुविधा के लिए एपीएल के एक संस्करण ए+ को विकसित करने में मदद की। ए+ में प्रिमिटिव फलनो का एक छोटा सेट था और इसे तेज़ी के लिए और समय श्रृंखला डेटा के बड़े सेट को संभालने के लिए अभिकल्पित किया गया था।<ref>{{cite web|title=आर्थर जैव और साक्षात्कार|url=http://queue.acm.org/detail.cfm?id=1531242}}</ref>


1993 में, व्हिटनी ने मॉर्गन स्टेनली को छोड़ दिया और K भाषा का पहला संस्करण विकसित किया। उसी समय उन्होंने उत्पाद का व्यावसायीकरण करने के लिए केएक्स सिस्टम्स का गठन किया और [[यूनियन बैंक ऑफ स्विट्जरलैंड]] (यूबीएस) के साथ एक विशेष अनुबंध पर हस्ताक्षर किए। अगले चार वर्षों के लिए उन्होंने यूबीएस के लिए के का उपयोग करते हुए विभिन्न वित्तीय और व्यापारिक अनुप्रयोगों का विकास किया।
1993 में, व्हिटनी ने मॉर्गन स्टेनली को छोड़ दिया और K भाषा का पहला संस्करण विकसित किया। उसी समय उन्होंने उत्पाद का व्यावसायीकरण करने के लिए केएक्स सिस्टम्स का गठन किया और [[यूनियन बैंक ऑफ स्विट्जरलैंड]] (यूबीएस) के साथ एक विशेष अनुबंध पर हस्ताक्षर किए। अगले चार वर्षों के लिए उन्होंने यूबीएस के लिए के का उपयोग करते हुए विभिन्न वित्तीय और व्यापारिक अनुप्रयोगों का विकास किया।


अनुबंध 1997 में समाप्त हो गया जब UBS का [[स्विस बैंक कॉर्पोरेशन]] में विलय हो गया। 1998 में, Kx प्रणाली ने kdb+ जारी किया, K. kdb पर निर्मित एक डेटाबेस एक [[इन-मेमोरी डेटाबेस|इन-मेमोरी, कॉलम-ओरिएंटेड डेटाबेस]] था और इसमें SQL-जैसे सिंटैक्स के साथ एक क्वेरी भाषा, ksql शामिल थी। तब से, K और KDB+ के साथ कई वित्तीय उत्पाद विकसित किए गए हैं। केडीबी+/टिक और केडीबी+/टीएक्यू को 2001 में विकसित किया गया था। केडीबी+, केडीबी+ का 64-बिट संस्करण 2003 में जारी किया गया था और केडीबी+/टिक और केडीबी+/टीएक्यू 2004 में जारी किया गया था। केडीबी+ में Q (क्यू सरणी प्रसंस्करण के लिए एक प्रोग्रामिंग भाषा है) शामिल है, एक भाषा जो आधारभूत K भाषा और केएसक्यूएल के कार्यों को मिलाती है।<ref>{{citation|last=Garland|first=Simon|url=http://vector.org.uk/weblog/archive/000036.html|title=Q Language Widening the Appeal of Vectors|publisher=Vector UK|date=December 28, 2004|url-status=dead|archive-url=https://web.archive.org/web/20070101213150/http://vector.org.uk/weblog/archive/000036.html|archive-date=January 1, 2007}}</ref>
अनुबंध 1997 में समाप्त हो गया जब यूबीएस का [[स्विस बैंक कॉर्पोरेशन]] में विलय हो गया। 1998 में, Kx प्रणाली ने केडीबी+ जारी किया, के.केडीबी पर निर्मित एक डेटाबेस एक [[इन-मेमोरी डेटाबेस|इन-मेमोरी, कॉलम-ओरिएंटेड डेटाबेस]] था और इसमें एसक्यूएल-जैसे सिंटैक्स के साथ एक क्वेरी भाषा, केएसक्यूएल सम्मलित थी। तब से, K और केडीबी+ के साथ कई वित्तीय उत्पाद विकसित किए गए हैं। केडीबी+/टिक और केडीबी+/टीएक्यू को 2001 में विकसित किया गया था। केडीबी+, केडीबी+ का 64-बिट संस्करण 2003 में जारी किया गया था और केडीबी+/टिक और केडीबी+/टीएक्यू 2004 में जारी किया गया था। kdb+ में Q (क्यू सरणी प्रसंस्करण के लिए एक प्रोग्रामिंग भाषा है) सम्मलित है, एक भाषा जो आधारभूत K भाषा और केएसक्यूएल के फलन को मिलाती है।<ref>{{citation|last=Garland|first=Simon|url=http://vector.org.uk/weblog/archive/000036.html|title=Q Language Widening the Appeal of Vectors|publisher=Vector UK|date=December 28, 2004|url-status=dead|archive-url=https://web.archive.org/web/20070101213150/http://vector.org.uk/weblog/archive/000036.html|archive-date=January 1, 2007}}</ref>


व्हिटनी ने 2018 में शक्ति नामक K का एक व्युत्पन्न जारी किया।<ref>{{Cite web|url=https://shakti.com/history/|title=Shakti}}</ref>
व्हिटनी ने 2018 में शक्ति नामक K का एक व्युत्पन्न जारी किया।<ref>{{Cite web|url=https://shakti.com/history/|title=Shakti}}</ref>
== सिंहावलोकन ==
== सिंहावलोकन ==
K, APL के साथ मुख्य विशेषताएं साझा करता है। वे दोनों [[व्याख्या की गई भाषा]] हैं, संक्षिप्त और अभिव्यंजक वाक्य रचना के लिए विख्यात [[अन्तरक्रियाशीलता]] भाषाएँ। उनके पास दाएं से बाएं मूल्यांकन के आधार पर पूर्वता के सरल नियम हैं। भाषाओं में प्रसंस्करण सरणियों के लिए डिज़ाइन किए गए आदिम कार्यों का एक समृद्ध सेट होता है। इन आदिम कार्यों में गणितीय संचालन शामिल हैं जो संपूर्ण डेटा ऑब्जेक्ट के रूप में सरणियों पर काम करते हैं, और सरणी संचालन, जैसे किसी सरणी के क्रम को छांटना या उलटना। इसके अलावा, भाषा में विशेष ऑपरेटर होते हैं जो पुनरावृत्ति और पुनरावर्तन के प्रकारों को करने के लिए आदिम कार्यों के साथ संयोजन करते हैं। नतीजतन, डेटासेट के जटिल और विस्तारित परिवर्तनों को उप-अभिव्यक्तियों की एक श्रृंखला के रूप में व्यक्त किया जा सकता है, जिसमें प्रत्येक लिंक गणना के एक खंड का प्रदर्शन करता है और परिणामों को श्रृंखला में अगले लिंक पर भेजता है।
K, एपीएल के साथ मुख्य विशेषताएं साझा करता है। वे दोनों [[व्याख्या की गई भाषा|व्याख्या की गई,]] [[अन्तरक्रियाशीलता]] भाषाएं संक्षिप्त और अभिव्यंजक वाक्यविन्यास के लिए विख्यात हैं। उनके पास दाएं से बाएं मूल्यांकन के आधार पर पूर्वता के सरल नियम हैं। भाषाओं में प्रसंस्करण ऐरे के लिए अभिकल्पित किए गए प्रिमिटिव फलनो का एक समृद्ध सेट होता है। इन प्रिमिटिव फलनो में गणितीय संचालन सम्मलित हैं जो संपूर्ण डेटा वस्तु के रूप में ऐरे पर काम करते हैं, और ऐरे संचालन मे, जैसे किसी ऐरे के क्रम को छांटना या उलटना। इसके अतिरिक्त, भाषा में विशेष संचालक होते हैं जो पुनरावृत्ति और पुनरावर्तन के प्रकारों को करने के लिए प्रिमिटिव फलनो के साथ संयोजन करते हैं। परिणामस्वरूप, डेटासेट के जटिल और विस्तारित परिवर्तनों को उप-अभिव्यंजका की एक श्रृंखला के रूप में व्यक्त किया जा सकता है, जिसमें प्रत्येक लिंक गणना के एक खंड का प्रदर्शन करता है और परिणामों को श्रृंखला में अगले लिंक पर भेजता है।


एपीएल की तरह, आदिम कार्यों और ऑपरेटरों को एकल या दोहरे वर्णों द्वारा दर्शाया जाता है; हालाँकि, APL के विपरीत, K खुद को ASCII कैरेक्टर सेट तक सीमित रखता है (जैसा कि एक और APL वेरिएंट, J (प्रोग्रामिंग लैंग्वेज) करता है)। इसके लिए अनुमति देने के लिए, K के लिए आदिम कार्यों का सेट छोटा और भारी कार्य अधिभार है, जिसमें प्रत्येक ASCII प्रतीक दो या दो से अधिक विशिष्ट कार्यों या संचालन का प्रतिनिधित्व करता है। किसी दिए गए व्यंजक में, संदर्भित वास्तविक कार्य संदर्भ द्वारा निर्धारित किया जाता है। नतीजतन, K भाव अपारदर्शी हो सकते हैं और मनुष्यों के लिए पार्स करना मुश्किल हो सकता है। उदाहरण के लिए, निम्नलिखित काल्पनिक अभिव्यक्ति में [[विस्मयादिबोधक बिंदु]] <code>!</code> तीन अलग-अलग कार्यों को संदर्भित करता है:
एपीएल की तरह, प्रिमिटिव फलनो और ऑपरेटरों को एकल या दोहरे वर्णों द्वारा दर्शाया जाता है; चूंकि, एपीएल के विपरीत, K स्वयं को ASCII वर्ण सेट तक सीमित रखता है (जैसा कि अन्य एपीएल संस्करण, J करता है)। इसके लिए अनुमति देने के लिए, K के लिए प्रिमिटिव फलनो का सेट छोटा और श्रम से ओवरलोडिंग होता है, जिसमें प्रत्येक एएससीआईआई प्रतीक दो या दो से अधिक विशिष्ट फलनो या संचालन का प्रतिनिधित्व करते हैं। किसी दिए गए व्यंजक में, संदर्भित वास्तविक फलन संदर्भ द्वारा निर्धारित किया जाता है। परिणामस्वरूप, K अभिव्यंजक अस्पष्ट हो सकते हैं और मनुष्यों के लिए पार्स करना मुश्किल हो सकता है। उदाहरण के लिए, निम्नलिखित काल्पनिक अभिव्यंजक में [[विस्मयादिबोधक बिंदु]] <code>!</code> तीन अलग-अलग फलनो को संदर्भित करता है:<syntaxhighlight lang="kal">
<प्री>2!!7!4</प्री>
2!!7!4
पहले दाएं से बाएं पढ़ना <code>!</code> मॉडुलो डिवीजन है जो 7 और 4 पर किया जाता है जिसके परिणामस्वरूप 3. अगला होता है <code>!</code> गणना है और 3 से कम पूर्णांकों को सूचीबद्ध करता है, जिसके परिणामस्वरूप सूची 0 1 2 है। अंतिम <code>!</code> घुमाव है जहां दाईं ओर की सूची को दो बार बाईं ओर घुमाया जाता है जिससे 2 0 1 का अंतिम परिणाम मिलता है।
</syntaxhighlight>पहले दाएं से बाएं पढ़ना <code>!</code> सापेक्ष विभाजन है जो 7 और 4 पर किया जाता है जिसके परिणामस्वरूप 3 मिलता है। अगला <code>!</code> गणना है और 3 से कम पूर्णांकों को सूचीबद्ध करता है, जिसके परिणामस्वरूप सूची 0 1 2 है। अंतिम <code>!</code> घुमाव है जहां दाईं ओर की सूची को दो बार बाईं ओर घुमाया जाता है जिससे 2 0 1 का अंतिम परिणाम मिलता है।


K का दूसरा मुख्य अंतर यह है कि कार्य [[प्रथम श्रेणी की वस्तु]]एँ हैं, एक अवधारणा जो योजना (प्रोग्रामिंग भाषा) से उधार ली गई है। प्रथम श्रेणी के कार्यों का उपयोग उसी संदर्भ में किया जा सकता है जहां डेटा मान का उपयोग किया जा सकता है। कार्यों को अज्ञात अभिव्यक्तियों के रूप में निर्दिष्ट किया जा सकता है और सीधे अन्य अभिव्यक्तियों के साथ उपयोग किया जा सकता है। फंक्शन एक्सप्रेशंस को K में [[ धनु धनुकोष्ठक ]]्स का उपयोग करके निर्दिष्ट किया गया है। उदाहरण के लिए, निम्नलिखित अभिव्यक्ति में एक द्विघात अभिव्यक्ति को एक फ़ंक्शन के रूप में परिभाषित किया गया है और 0 1 2 और 3 मानों पर लागू किया गया है:
K का दूसरा मुख्य अंतर यह है कि फलन [[प्रथम श्रेणी की वस्तु|प्रथम श्रेणी की वस्तुएँ]] हैं, एक अवधारणा जो योजना (प्रोग्रामिंग भाषा) से उधार ली गई है। प्रथम श्रेणी के फलनो का उपयोग उसी संदर्भ में किया जा सकता है जहां डेटा मान का उपयोग किया जा सकता है। फलनो को अज्ञात अभिव्यंजको के रूप में निर्दिष्ट किया जा सकता है और सीधे अन्य अभिव्यंजको के साथ उपयोग किया जा सकता है। फलन अभिव्यंजक को K में [[ धनु धनुकोष्ठक |कर्ली ब्रैकेट्स]] का उपयोग करके निर्दिष्ट किया गया है। उदाहरण के लिए, निम्नलिखित अभिव्यंजक में एक द्विघात अभिव्यंजक को एक फलन के रूप में परिभाषित किया गया है और 0 1 2 और 3 मानों पर लागू किया गया है:
<syntaxhighlight lang="k">{(3*x^2)+(2*x)+1}'!4</syntaxhighlight>
<syntaxhighlight lang="k">{(3*x^2)+(2*x)+1}'!4</syntaxhighlight>
K में, नामित फ़ंक्शंस केवल फ़ंक्शन एक्सप्रेशन हैं जो एक चर में संग्रहीत होते हैं उसी तरह किसी भी डेटा मान को एक चर में संग्रहीत किया जाता है।
K में, नामित फलन केवल फलन अभिव्यंजक हैं जो एक चर में संग्रहीत होते हैं उसी तरह किसी भी डेटा मान को एक चर में संग्रहीत किया जाता है।
<syntaxhighlight lang="k">a:25
<syntaxhighlight lang="k">a:25
f:{(x^2)-1}</syntaxhighlight>
f:{(x^2)-1}</syntaxhighlight>
फ़ंक्शंस को किसी अन्य फ़ंक्शन के तर्क के रूप में पारित किया जा सकता है या फ़ंक्शन से परिणाम के रूप में लौटाया जा सकता है।
फलन को किसी अन्य फलन के तर्क के रूप में पारित किया जा सकता है या फलन से परिणाम के रूप में लौटाया जा सकता है।


== उदाहरण ==
== उदाहरण ==
K एक व्याख्या की गई भाषा है जहाँ हर कथन का मूल्यांकन किया जाता है और उसके परिणाम तुरंत प्रदर्शित होते हैं। तार जैसे शाब्दिक भाव स्वयं का मूल्यांकन करते हैं। नतीजतन, [[हैलो वर्ल्ड]]-प्रोग्राम छोटा है:
K एक व्याख्या की गई भाषा है जहाँ हर कथन का मूल्यांकन किया जाता है और उसके परिणाम तुरंत प्रदर्शित होते हैं। स्ट्रिंग जैसे शाब्दिक भाव स्वयं का मूल्यांकन करते हैं। परिणामस्वरूप, [[हैलो वर्ल्ड]]-प्रोग्राम छोटा है:
<पूर्व>
  हैलो वर्ल्ड!
  हैलो वर्ल्ड!
</पूर्व>
निम्न व्यंजक स्ट्रिंग्स की उनकी लंबाई के अनुसार सूची को सॉर्ट करता है:
निम्न व्यंजक स्ट्रिंग्स की उनकी लंबाई के अनुसार सूची को सॉर्ट करता है:
<syntaxhighlight lang="k">
<syntaxhighlight lang="k">
x@>#:'x
x@>#:'x
</syntaxhighlight>
</syntaxhighlight>
अभिव्यक्ति का मूल्यांकन दाएं से बाएं इस प्रकार किया जाता है:
अभिव्यंजक का मूल्यांकन दाएं से बाएं इस प्रकार किया जाता है:
# #:'x सूची x में प्रत्येक शब्द की लंबाई लौटाता है।
# #:'x सूची x में प्रत्येक शब्द की लंबाई लौटाता है।
# > उन सूचकांकों को लौटाता है जो मूल्यों की सूची को अवरोही क्रम में क्रमबद्ध करेंगे।
# > उन सूचकांकों को लौटाता है जो मूल्यों की सूची को अवरोही क्रम में क्रमबद्ध करेंगे।
# @ स्ट्रिंग्स की मूल सूची में अनुक्रमणिका के दाईं ओर पूर्णांक मानों का उपयोग करता है।
# @ स्ट्रिंग्स की मूल सूची में अनुक्रमणिका के दाईं ओर पूर्णांक मानों का उपयोग करता है।


यह निर्धारित करने के लिए कि क्या कोई संख्या अभाज्य है, एक फ़ंक्शन को इस प्रकार लिखा जा सकता है:
यह निर्धारित करने के लिए कि क्या कोई संख्या अभाज्य है, एक फलन को इस प्रकार लिखा जा सकता है:
<syntaxhighlight lang="k">
<syntaxhighlight lang="k">
{&/x!/:2_!x}
{&/x!/:2_!x}
</syntaxhighlight>
</syntaxhighlight>
समारोह का मूल्यांकन दाएं से बाएं से किया जाता है:
फलन का मूल्यांकन दाएं से बाएं तक किया जाता है:
# !x x से कम धनात्मक पूर्णांकों की गणना करें।
# !x x से कम धनात्मक पूर्णांकों की गणना करें।
# 2_ गणना के पहले दो तत्वों (0 और 1) को हटा देता है।
# 2_ गणना के पहले दो तत्वों (0 और 1) को हटा देता है।
# x!/: मूल पूर्णांक और काटे गए सूची में प्रत्येक मान के बीच सापेक्ष विभाजन करता है।
# x!/: मूल पूर्णांक और काटे गए सूची में प्रत्येक मान के बीच सापेक्ष विभाजन करता है।
# &/ सापेक्ष परिणाम की सूची का न्यूनतम मान ज्ञात करें।
# &/ सापेक्ष परिणाम की सूची का न्यूनतम मान ज्ञात करें।
यदि x अभाज्य नहीं है, तो मॉडुलो ऑपरेशन द्वारा लौटाए गए मानों में से एक 0 होगा और इसके परिणामस्वरूप सूची का न्यूनतम मान होगा। यदि x अभाज्य है तो न्यूनतम मान 1 होगा, क्योंकि x mod 2 2 से अधिक किसी भी अभाज्य के लिए 1 है।
यदि x अभाज्य नहीं है, तो सापेक्ष संचालन द्वारा लौटाए गए मानों में से एक 0 होगा और इसके परिणामस्वरूप सूची का न्यूनतम मान होगा। यदि x अभाज्य है तो न्यूनतम मान 1 होगा, क्योंकि x मोड 2 जो 2 से अधिक किसी भी अभाज्य के लिए 1 है।


नीचे दिए गए फ़ंक्शन का उपयोग 1 और R के बीच सभी अभाज्य संख्याओं को सूचीबद्ध करने के लिए किया जा सकता है:
नीचे दिए गए फलन का उपयोग 1 और R के बीच सभी अभाज्य संख्याओं को सूचीबद्ध करने के लिए किया जा सकता है:
<syntaxhighlight lang="k">
<syntaxhighlight lang="k">
2_&{&/x!/:2_!x}'!R
2_&{&/x!/:2_!x}'!R
</syntaxhighlight>
</syntaxhighlight>
अभिव्यक्ति का मूल्यांकन दाएं से बाएं किया जाता है
अभिव्यंजक का मूल्यांकन दाएं से बाएं किया जाता है
# !R, R से कम पूर्णांकों की गणना करें।
# !R, R से कम पूर्णांकों की गणना करें।
#' गणना के प्रत्येक मान को बाईं ओर अभाज्य संख्या फ़ंक्शन पर लागू करें। यह 0 और 1 की सूची लौटाएगा।
#' गणना के प्रत्येक मान को बाईं ओर अभाज्य संख्या फलन पर लागू करें। यह 0 और 1 की सूची लौटाएगा।
# और उस सूची के सूचकांक लौटाएं जहां मान 1 है।
# & और उस सूची के सूचकांक लौटाएं जहां मान 1 है।
# 2_ गणना के पहले दो तत्वों को छोड़ दें (0 और 1)
# 2_ गणना के पहले दो तत्वों को छोड़ दें (0 और 1)


== के वित्तीय उत्पाद ==
== के वित्तीय उत्पाद ==
K वित्तीय उत्पादों के परिवार की नींव है। केडीबी + एक इन-मेमोरी, कॉलम-आधारित डेटाबेस है जिसमें [[ संबंधपरक डेटाबेस प्रबंधन प्रणाली ]] के समान कार्य हैं। डेटाबेस SQL, [[SQL-92]] और ksql का समर्थन करता है, SQL के समान सिंटैक्स के साथ एक क्वेरी भाषा और स्तंभ आधारित प्रश्नों और सरणी विश्लेषण के लिए डिज़ाइन किया गया है।
K वित्तीय उत्पादों के परिवार की नींव है। केडीबी+ एक इन-मेमोरी, कॉलम-आधारित डेटाबेस है जिसमें[[ संबंधपरक डेटाबेस प्रबंधन प्रणाली |  संबंधपरक डेटाबेस प्रबंधन प्रणाली]] के समान फलन हैं। डेटाबेस एसक्यूएल, [[SQL-92|एसक्यूएल-92]] और केएसक्यूएल का समर्थन करता है, एसक्यूएल के समान सिंटैक्स के साथ एक क्वेरी भाषा और स्तंभ आधारित प्रश्नों और ऐरे विश्लेषण के लिए अभिकल्पित किया गया है।


Kdb+ Solaris ([[ऑपरेटिंग सिस्टम]]), [[Linux]], [[macOS]], और [[Microsoft Windows]] (32-बिट या 64-बिट) सहित कई ऑपरेटिंग सिस्टम के लिए उपलब्ध है।
Kdb+ सोलारिस ([[ऑपरेटिंग सिस्टम]]), [[Linux|लिनक्स]], [[macOS|मैक ओएस]], और [[Microsoft Windows|माइक्रोसॉफ़्ट विंडोज़]] (32-बिट या 64-बिट) सहित कई ऑपरेटिंग सिस्टम (OS) के लिए उपलब्ध है।


== यह भी देखें ==
== यह भी देखें ==
* जे (प्रोग्रामिंग भाषा), एक अन्य एपीएल-प्रेरित भाषा
* जे (प्रोग्रामिंग भाषा), एक अन्य एपीएल-प्रेरित भाषा
* क्यू (केएक्स सिस्टम्स से प्रोग्रामिंग भाषा), केडीबी + की भाषा और के और केएसक्यूएल का एक नया मर्ज किया गया संस्करण।
* क्यू (केएक्स सिस्टम्स से प्रोग्रामिंग भाषा), केडीबी+ की भाषा और के और केएसक्यूएल का एक नया विलयित किया गया संस्करण।


==संदर्भ==
==संदर्भ==
{{Reflist}}
{{Reflist}}


==बाहरी संबंध==
==बाहरी संबंध==
* {{Official website|https://kx.com}}, Kx Systems
* {{Official website|https://kx.com}},केएक्स सिस्टम्स
* {{Official website|https://kx.com/solutions/}}, kdb+
* {{Official website|https://kx.com/solutions/}}, kdb+
* [http://www.math.bas.bg/bantchev/place/k.html Overview of K (with a link to K reference card)]
* [http://www.math.bas.bg/bantchev/place/k.html K का अवलोकन (K संदर्भ कार्ड के लिंक के साथ)]
* [https://cs.nyu.edu/courses/fall07/G22.2965-001/kintro.html Dennis Shasha - K as a Prototyping Language]
* [https://cs.nyu.edu/courses/fall07/G22.2965-001/kintro.html डेनिस शाशा - के एक प्रोटोटाइप भाषा के रूप में]
* [http://archive.vector.org.uk/art10010830 K by Arthur Whitney (2005)]
* [http://archive.vector.org.uk/art10010830 के आर्थर व्हिटनी द्वारा (2005)]
* [https://johnearnest.github.io/ok/index.html oK] [[REPL]] for a K clone
* [https://johnearnest.github.io/ok/index.html ठीक] [[REPL|आरईपीएल]] K क्लोन के लिए
* [https://github.com/kevinlawler/kona/wiki ''Kona''] an open-source K3 implementation
* [https://github.com/kevinlawler/kona/wiki ''कोना''] एक विवृत-स्रोत K3 कार्यान्वयन
 
{{APL programming language}}
[[Category: एपीएल प्रोग्रामिंग भाषा परिवार]] [[Category: ऐरे प्रोग्रामिंग भाषाएँ]] [[Category: डेटा-केंद्रित प्रोग्रामिंग भाषाएँ]] [[Category: गतिशील प्रोग्रामिंग भाषाएँ]] [[Category: कार्य-स्तर की भाषाएँ]] [[Category: मालिकाना डेटाबेस प्रबंधन प्रणाली]] [[Category: प्रोग्रामिंग भाषा]] [[Category: गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषाएँ]] [[Category: उच्च स्तरीय प्रोग्रामिंग भाषाएं]] [[Category: 1993 सॉफ्टवेयर]] [[Category: 1993 में बनाई गई प्रोग्रामिंग लैंग्वेज]]
 
 


[[Category: Machine Translated Page]]
[[Category:1993 में बनाई गई प्रोग्रामिंग लैंग्वेज]]
[[Category:1993 सॉफ्टवेयर]]
[[Category:Created On 13/05/2023]]
[[Category:Created On 13/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Official website not in Wikidata]]
[[Category:Pages with script errors]]
[[Category:Pages with syntax highlighting errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:उच्च स्तरीय प्रोग्रामिंग भाषाएं]]
[[Category:एपीएल प्रोग्रामिंग भाषा परिवार]]
[[Category:ऐरे प्रोग्रामिंग भाषाएँ]]
[[Category:कार्य-स्तर की भाषाएँ]]
[[Category:गतिशील प्रोग्रामिंग भाषाएँ]]
[[Category:गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषाएँ]]
[[Category:डेटा-केंद्रित प्रोग्रामिंग भाषाएँ]]
[[Category:प्रोग्रामिंग भाषा]]
[[Category:मालिकाना डेटाबेस प्रबंधन प्रणाली]]

Latest revision as of 15:53, 24 May 2023

K
Paradigmarray, functional
द्वारा डिज़ाइन किया गयाArthur Whitney
DeveloperKx Systems
पहली प्रस्तुति1993; 31 years ago (1993)
टाइपिंग अनुशासनdynamic, strong
वेबसाइटkx.com
Influenced by
A+, APL, Scheme
Influenced
Q, Shakti

कश्मीर (प्रोग्रामिंग भाषा), आर्थर व्हिटनी (कंप्यूटर वैज्ञानिक) द्वारा विकसित और केएक्स सिस्टम्स ( केएक्स एक डेटा विश्लेषण सॉफ़्टवेयर डेवलपर और विक्रेता है।) द्वारा व्यावसायीकृत एक संपदा ऐरे प्रसंस्करण प्रोग्रामिंग भाषा है। भाषा केडीबी+, एक मेमोरी में कॉलम-आधारित डेटाबेस और अन्य संबंधित वित्तीय उत्पादों के लिए नींव के रूप में कार्य करती है।[1] मूल रूप से 1993 में विकसित भाषा, एपीएल (प्रोग्रामिंग भाषा) का एक प्रकार है और इसमें योजना (प्रोग्रामिंग भाषा) के तत्व सम्मलित हैं। भाषा के पैरोकार इसकी स्पीड, ऐरे को संभालने में सुविधा और अर्थपूर्ण वाक्यविन्यास पर जोर देते हैं।[2]

इतिहास

K को विकसित करने से पहले, आर्थर व्हिटनी ने एपीएल के साथ बड़े पैमाने पर काम किया था, पहले केनेथ ई. इवरसन और रोजर हुई के साथ आईपी शार्प एसोसिएट्स में, और पश्चात में मॉर्गन स्टेनली में वित्तीय अनुप्रयोगों का विकास किया। मॉर्गन स्टेनली में, व्हिटनी ने आईबीएम मेनफ़्रेम कंप्यूटर से एपीएल अनुप्रयोगों को सन कार्य केंद्र के नेटवर्क की ओर पलायन करने की सुविधा के लिए एपीएल के एक संस्करण ए+ को विकसित करने में मदद की। ए+ में प्रिमिटिव फलनो का एक छोटा सेट था और इसे तेज़ी के लिए और समय श्रृंखला डेटा के बड़े सेट को संभालने के लिए अभिकल्पित किया गया था।[3]

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

अनुबंध 1997 में समाप्त हो गया जब यूबीएस का स्विस बैंक कॉर्पोरेशन में विलय हो गया। 1998 में, Kx प्रणाली ने केडीबी+ जारी किया, के.केडीबी पर निर्मित एक डेटाबेस एक इन-मेमोरी, कॉलम-ओरिएंटेड डेटाबेस था और इसमें एसक्यूएल-जैसे सिंटैक्स के साथ एक क्वेरी भाषा, केएसक्यूएल सम्मलित थी। तब से, K और केडीबी+ के साथ कई वित्तीय उत्पाद विकसित किए गए हैं। केडीबी+/टिक और केडीबी+/टीएक्यू को 2001 में विकसित किया गया था। केडीबी+, केडीबी+ का 64-बिट संस्करण 2003 में जारी किया गया था और केडीबी+/टिक और केडीबी+/टीएक्यू 2004 में जारी किया गया था। kdb+ में Q (क्यू सरणी प्रसंस्करण के लिए एक प्रोग्रामिंग भाषा है) सम्मलित है, एक भाषा जो आधारभूत K भाषा और केएसक्यूएल के फलन को मिलाती है।[4]

व्हिटनी ने 2018 में शक्ति नामक K का एक व्युत्पन्न जारी किया।[5]

सिंहावलोकन

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

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

2!!7!4

पहले दाएं से बाएं पढ़ना ! सापेक्ष विभाजन है जो 7 और 4 पर किया जाता है जिसके परिणामस्वरूप 3 मिलता है। अगला ! गणना है और 3 से कम पूर्णांकों को सूचीबद्ध करता है, जिसके परिणामस्वरूप सूची 0 1 2 है। अंतिम ! घुमाव है जहां दाईं ओर की सूची को दो बार बाईं ओर घुमाया जाता है जिससे 2 0 1 का अंतिम परिणाम मिलता है।

K का दूसरा मुख्य अंतर यह है कि फलन प्रथम श्रेणी की वस्तुएँ हैं, एक अवधारणा जो योजना (प्रोग्रामिंग भाषा) से उधार ली गई है। प्रथम श्रेणी के फलनो का उपयोग उसी संदर्भ में किया जा सकता है जहां डेटा मान का उपयोग किया जा सकता है। फलनो को अज्ञात अभिव्यंजको के रूप में निर्दिष्ट किया जा सकता है और सीधे अन्य अभिव्यंजको के साथ उपयोग किया जा सकता है। फलन अभिव्यंजक को K में कर्ली ब्रैकेट्स का उपयोग करके निर्दिष्ट किया गया है। उदाहरण के लिए, निम्नलिखित अभिव्यंजक में एक द्विघात अभिव्यंजक को एक फलन के रूप में परिभाषित किया गया है और 0 1 2 और 3 मानों पर लागू किया गया है:

{(3*x^2)+(2*x)+1}'!4

K में, नामित फलन केवल फलन अभिव्यंजक हैं जो एक चर में संग्रहीत होते हैं उसी तरह किसी भी डेटा मान को एक चर में संग्रहीत किया जाता है।

a:25
f:{(x^2)-1}

फलन को किसी अन्य फलन के तर्क के रूप में पारित किया जा सकता है या फलन से परिणाम के रूप में लौटाया जा सकता है।

उदाहरण

K एक व्याख्या की गई भाषा है जहाँ हर कथन का मूल्यांकन किया जाता है और उसके परिणाम तुरंत प्रदर्शित होते हैं। स्ट्रिंग जैसे शाब्दिक भाव स्वयं का मूल्यांकन करते हैं। परिणामस्वरूप, हैलो वर्ल्ड-प्रोग्राम छोटा है:

हैलो वर्ल्ड!

निम्न व्यंजक स्ट्रिंग्स की उनकी लंबाई के अनुसार सूची को सॉर्ट करता है:

x@>#:'x

अभिव्यंजक का मूल्यांकन दाएं से बाएं इस प्रकार किया जाता है:

  1. #:'x सूची x में प्रत्येक शब्द की लंबाई लौटाता है।
  2. > उन सूचकांकों को लौटाता है जो मूल्यों की सूची को अवरोही क्रम में क्रमबद्ध करेंगे।
  3. @ स्ट्रिंग्स की मूल सूची में अनुक्रमणिका के दाईं ओर पूर्णांक मानों का उपयोग करता है।

यह निर्धारित करने के लिए कि क्या कोई संख्या अभाज्य है, एक फलन को इस प्रकार लिखा जा सकता है:

{&/x!/:2_!x}

फलन का मूल्यांकन दाएं से बाएं तक किया जाता है:

  1. !x x से कम धनात्मक पूर्णांकों की गणना करें।
  2. 2_ गणना के पहले दो तत्वों (0 और 1) को हटा देता है।
  3. x!/: मूल पूर्णांक और काटे गए सूची में प्रत्येक मान के बीच सापेक्ष विभाजन करता है।
  4. &/ सापेक्ष परिणाम की सूची का न्यूनतम मान ज्ञात करें।

यदि x अभाज्य नहीं है, तो सापेक्ष संचालन द्वारा लौटाए गए मानों में से एक 0 होगा और इसके परिणामस्वरूप सूची का न्यूनतम मान होगा। यदि x अभाज्य है तो न्यूनतम मान 1 होगा, क्योंकि x मोड 2 जो 2 से अधिक किसी भी अभाज्य के लिए 1 है।

नीचे दिए गए फलन का उपयोग 1 और R के बीच सभी अभाज्य संख्याओं को सूचीबद्ध करने के लिए किया जा सकता है:

2_&{&/x!/:2_!x}'!R

अभिव्यंजक का मूल्यांकन दाएं से बाएं किया जाता है

  1. !R, R से कम पूर्णांकों की गणना करें।
  2. ' गणना के प्रत्येक मान को बाईं ओर अभाज्य संख्या फलन पर लागू करें। यह 0 और 1 की सूची लौटाएगा।
  3. & और उस सूची के सूचकांक लौटाएं जहां मान 1 है।
  4. 2_ गणना के पहले दो तत्वों को छोड़ दें (0 और 1)

के वित्तीय उत्पाद

K वित्तीय उत्पादों के परिवार की नींव है। केडीबी+ एक इन-मेमोरी, कॉलम-आधारित डेटाबेस है जिसमें संबंधपरक डेटाबेस प्रबंधन प्रणाली के समान फलन हैं। डेटाबेस एसक्यूएल, एसक्यूएल-92 और केएसक्यूएल का समर्थन करता है, एसक्यूएल के समान सिंटैक्स के साथ एक क्वेरी भाषा और स्तंभ आधारित प्रश्नों और ऐरे विश्लेषण के लिए अभिकल्पित किया गया है।

Kdb+ सोलारिस (ऑपरेटिंग सिस्टम), लिनक्स, मैक ओएस, और माइक्रोसॉफ़्ट विंडोज़ (32-बिट या 64-बिट) सहित कई ऑपरेटिंग सिस्टम (OS) के लिए उपलब्ध है।

यह भी देखें

  • जे (प्रोग्रामिंग भाषा), एक अन्य एपीएल-प्रेरित भाषा
  • क्यू (केएक्स सिस्टम्स से प्रोग्रामिंग भाषा), केडीबी+ की भाषा और के और केएसक्यूएल का एक नया विलयित किया गया संस्करण।

संदर्भ

  1. "Kx Systems".
  2. Iverson, Kenneth. "विचार के एक उपकरण के रूप में संकेतन". Archived from the original on 2013-09-20. Retrieved 2015-02-23.
  3. "आर्थर जैव और साक्षात्कार".
  4. Garland, Simon (December 28, 2004), Q Language Widening the Appeal of Vectors, Vector UK, archived from the original on January 1, 2007
  5. "Shakti".

बाहरी संबंध