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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Distinguish|ARC Macro Language}}
{{Distinguish|एआरसी मैक्रो भाषा}}
{{Infobox programming language
{{Infobox programming language
| name = Arc
| name = आर्क
| logo = <!-- Filename only -->
| logo = <!-- Filename only -->
| logo caption =  
| logo caption =  
| screenshot = <!-- Filename only -->
| screenshot = <!-- Filename only -->
| screenshot caption =  
| screenshot caption =  
| paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Metaprogramming|meta]], [[Procedural programming|procedural]]
| paradigms = [[Multi-paradigm programming language|बहु-प्रतिमान]]: [[Functional programming|कार्यात्मक]], [[Metaprogramming|मेटा]], [[Procedural programming|प्रक्रियात्मक]]
| family = [[Lisp (programming language)|Lisp]]
| family = [[Lisp (programming language)|लिस्प]]
| designer = [[Paul Graham (programmer)|Paul Graham]]
| designer = [[Paul Graham (programmer)|पॉल ग्राहम]]
| developers = Paul Graham, Robert Morris,<br />Arc [[Community of practice|community]]
| developers = पॉल ग्राहम, रॉबर्ट मॉरिस,<br />आर्क [[Community of practice|समुदाय]]
| released = {{Start date and age|2008|01|29|df=yes}}
| released = {{Start date and age|2008|01|29|df=yes}}
| latest release version = 3.2
| latest release version = 3.2
Line 15: Line 15:
| latest preview version =  
| latest preview version =  
| latest preview date = <!-- {{Start date and age|201Y|MM|DD|df=yes}} -->
| latest preview date = <!-- {{Start date and age|201Y|MM|DD|df=yes}} -->
| typing = [[Dynamic typing|Dynamic]]
| typing = [[Dynamic typing|गतिशील]]
| scope =  
| scope =  
| programming language = [[Racket (programming language)|Racket]]
| programming language = [[Racket (programming language)|रैकेट]]
| platform = [[IA-32]], [[x86-64]]
| platform = [[IA-32]], [[x86-64]]
| operating system = [[Linux]]
| operating system = [[लिनक्स]]
| license = [[Artistic License]] 2.0
| license = [[कलात्मक लाइसेंस]] 2.0
| file ext = .arc
| file ext = .आर्क
| file format = <!-- or: | file formats = -->
| file format = <!-- or: | file formats = -->
| website = {{URL|arclanguage.org}}
| website = {{URL|आर्कभाषा.ओआरजी}}
| implementations = Arc, Anarki, Arcadia, Rainbow
| implementations = आर्क, अनारकी, आर्केडिया, इंद्रधनुष
| dialects =  
| dialects =  
| influenced by = [[Lisp (programming language)|Lisp]], [[Scheme (programming language)|Scheme]]
| influenced by = [[Lisp (programming language)|लिस्प]], [[Scheme (programming language)|योजना]]
| influenced =  
| influenced =  
}}
}}


आर्क [[प्रोग्रामिंग भाषा]] है, जो [[लिस्प (प्रोग्रामिंग भाषा)]] भाषा की [[बोली (कंप्यूटिंग)]] है, जिसे [[पॉल ग्राहम (प्रोग्रामर)]] और [[रॉबर्ट टप्पन मॉरिस]] द्वारा विकसित किया गया है। यह [[ कलात्मक लाइसेंस |कलात्मक लाइसेंस]] 2.0 के तहत जारी किया गया [[मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर]] है।
'''आर्क''' विशेष प्रकार की [[प्रोग्रामिंग भाषा]] होती है, जो [[लिस्प (प्रोग्रामिंग भाषा)|लिस्प भाषा (प्रोग्रामिंग भाषा)]] की [[बोली (कंप्यूटिंग)]] होती है, जिसे [[पॉल ग्राहम (प्रोग्रामर)]] और [[रॉबर्ट टप्पन मॉरिस]] द्वारा विकसित किया गया है। यह [[ कलात्मक लाइसेंस |कलात्मक लाइसेंस]] 2.0 के अनुसार जारी किया गया [[मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर]] [[लिस्प (प्रोग्रामिंग भाषा)|(प्रोग्रामिंग भाषा)]] होता है।


==इतिहास==
==इतिहास==
2001 में, पॉल ग्राहम ने घोषणा की कि वह आर्क नामक लिस्प की नई बोली (कंप्यूटिंग) पर काम कर रहे थे। इसके बाद के वर्षों में, उन्होंने भाषा की विशेषताओं या लक्ष्यों का वर्णन करते हुए कई निबंध लिखे हैं, और ग्राहम की [[ स्टार्ट - अप कंपनी |स्टार्ट - अप कंपनी]] के [[ व्यापार इनक्यूबेटर |व्यापार इनक्यूबेटर]] में [[वाई कॉम्बिनेटर]] नामक कुछ आंतरिक परियोजनाएं आर्क में लिखी गई हैं, विशेष रूप से [[ हैकर समाचार |हैकर समाचार]] वेब फोरम और न्यूज एग्रीगेटर प्रोग्राम। आर्क [[रैकेट (प्रोग्रामिंग भाषा)]] में लिखा गया है।<ref>{{cite web |url=http://arclanguage.org/install |title=Arc Forum: install |website=Arclanguage.org |access-date=2018-11-07}}</ref>
सन्न 2001 में, पॉल ग्राहम ने घोषणा की थी कि वह आर्क नामक लिस्प की नई बोली (कंप्यूटिंग) पर कार्य कर रहे थे। इसके पश्चात् के वर्षों में, उन्होंने भाषा की विशेषताओं या लक्ष्यों का वर्णन करते हुए अनेक निबंध लिखे हैं, और ग्राहम की [[वाई कॉम्बिनेटर]] नामक  [[ स्टार्ट - अप कंपनी |स्टार्टअप कंपनी]] के [[ व्यापार इनक्यूबेटर |व्यापार इनक्यूबेटर]] में कुछ आंतरिक परियोजनाएं आर्क में लिखी गई हैं, विशेष रूप से [[ हैकर समाचार |हैकर समाचार]] वेब फोरम और न्यूज एग्रीगेटर प्रोग्राम आर्क [[रैकेट (प्रोग्रामिंग भाषा)]] में लिखा गया है।<ref>{{cite web |url=http://arclanguage.org/install |title=Arc Forum: install |website=Arclanguage.org |access-date=2018-11-07}}</ref>
{{Lisp}}
{{Lisp}}


==मकसद==
==लक्ष्य==
लोकप्रिय होने के निबंध में<ref>{{cite web |url=http://www.paulgraham.com/popular.html |title=लोकप्रिय होना|last=Graham |first=Paul |date=May 2001 |website=PaulGraham.com |access-date=2018-12-05}}</ref> ग्राहम ने भाषा के लिए अपने कुछ लक्ष्यों का वर्णन किया है। जबकि कई लक्ष्य बहुत सामान्य हैं (आर्क हैक करने योग्य होना चाहिए, अच्छी [[ पुस्तकालय (कम्प्यूटिंग) |पुस्तकालय (कम्प्यूटिंग)]] होनी चाहिए), उन्होंने कुछ विशेष बातें बताईं। उदाहरण के लिए, उनका मानना ​​है कि भाषा का संक्षिप्त होना ज़रूरी है:
लोकप्रिय होने के निबंध में<ref>{{cite web |url=http://www.paulgraham.com/popular.html |title=लोकप्रिय होना|last=Graham |first=Paul |date=May 2001 |website=PaulGraham.com |access-date=2018-12-05}}</ref> ग्राहम ने भाषा के लिए अपने कुछ लक्ष्यों का वर्णन किया है। जबकि अनेक लक्ष्य बहुत सामान्य हैं ("आर्क हैक करने योग्य होता है", "अतः अच्छी [[ पुस्तकालय (कम्प्यूटिंग) |पुस्तकालय (कम्प्यूटिंग)]] होती है"), उन्होंने कुछ विशेष बातें बताईं थी। उदाहरण के लिए, उनका मानना ​​है कि भाषा का संक्षिप्त होना आवश्यक होता है।
{{Quote |It would not be far from the truth to say that a hacker about to write a program decides what language to use, at least subconsciously, based on the total number of characters he'll have to type. If this isn't precisely how hackers think, a language designer would do well to act as if it were.}}
{{Quote |यह कहना सत्य से अधिक दूर नहीं होता है कि हैकर जो प्रोग्राम लिखने वाला होता है वह कम से कम अवचेतन रूप से यह तय करता है कि उसे टाइप करने वाले कुल वर्णों की संख्या के आधार पर किस भाषा का उपयोग करना है। यदि हैकर्स बिल्कुल ऐसा नहीं सोचते हैं, तब भाषा डिजाइनर के लिए अच्छी होती है कि वह वैसा ही व्यवहार करते है।}}


उन्होंने यह भी कहा कि किसी भाषा के लिए केवल कम संख्या में स्वयंसिद्ध सिद्धांतों को लागू करना बेहतर होता है, भले ही इसका मतलब यह हो कि भाषा में वे विशेषताएं न हों जो बड़े संगठन चाहते हैं, जैसे कि [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] |ऑब्जेक्ट-ओरिएंटेशन (ओओ)इसके अलावा, ग्राहम का मानना ​​है कि OO उपयोगी नहीं है क्योंकि इसके तरीके और [[सॉफ़्टवेयर डिज़ाइन पैटर्न]] केवल अच्छे डिज़ाइन हैं, और वह OO को लागू करने के लिए उपयोग की जाने वाली भाषा सुविधाओं को आंशिक रूप से गलत मानते हैं।<ref>{{cite web |url=http://www.paulgraham.com/noop.html |title=आर्क विशेष रूप से ऑब्जेक्ट-ओरिएंटेड क्यों नहीं है?|last=Graham |first=Paul |website=PaulGraham.com |access-date=2018-12-05}}</ref><ref>{{cite web |url=http://www.paulgraham.com/arcfaq.html |title=आर्क अक्सर पूछे जाने वाले प्रश्न|last=Graham |first=Paul |website=PaulGraham.com |access-date=2018-12-05}}</ref> 2008 में आर्क के परिचय में, ग्राहम ने कहा कि इसका लाभ इसकी संक्षिप्तता है।<ref>{{cite magazine |last=Huber |first=Mathias |date=2008-02-08 |url=http://www.linux-magazine.com/Online/News/Arc-Makes-Programs-Shorter |title=आर्क प्रोग्राम को छोटा बनाता है|magazine=Linux Magazine |location=Lawrence, Kansas |publisher=Linux New Media USA |access-date=2018-11-25}}</ref>
उन्होंने यह भी कहा है कि किसी भाषा के लिए केवल कम संख्या में स्वयंसिद्ध सिद्धांतों को क्रियान्वित करना उत्तम होता है, यदि इसका तात्पर्य यह होता है कि भाषा में वह विशेषताएं नही होती है जो बड़े संगठन चाहते हैं, जैसे कि ऑब्जेक्ट-ओरिएंटेशन (ओओ) इत्यादि। इसके अतिरिक्त, ग्राहम का मानना ​​है कि ओओ उपयोगी नहीं होता है जिससे कि इसकी विधि और [[सॉफ़्टवेयर डिज़ाइन पैटर्न]] केवल अच्छे डिज़ाइन होते हैं, और वह ओओ को क्रियान्वित करने के लिए उपयोग की जाने वाली भाषा सुविधाओं को आंशिक रूप से गलत मानते हैं।<ref>{{cite web |url=http://www.paulgraham.com/noop.html |title=आर्क विशेष रूप से ऑब्जेक्ट-ओरिएंटेड क्यों नहीं है?|last=Graham |first=Paul |website=PaulGraham.com |access-date=2018-12-05}}</ref><ref>{{cite web |url=http://www.paulgraham.com/arcfaq.html |title=आर्क अक्सर पूछे जाने वाले प्रश्न|last=Graham |first=Paul |website=PaulGraham.com |access-date=2018-12-05}}</ref> इस प्रकार सन्न 2008 में आर्क के परिचय में, ग्राहम ने कहा था कि इसका लाभ इसकी संक्षिप्तता है।<ref>{{cite magazine |last=Huber |first=Mathias |date=2008-02-08 |url=http://www.linux-magazine.com/Online/News/Arc-Makes-Programs-Shorter |title=आर्क प्रोग्राम को छोटा बनाता है|magazine=Linux Magazine |location=Lawrence, Kansas |publisher=Linux New Media USA |access-date=2018-11-25}}</ref>
लिस्प प्रोग्रामर्स के बीच विवाद यह है कि भाषा के [[एस-अभिव्यक्ति]]यों को वाक्यविन्यास के अन्य रूपों द्वारा पूरक किया जाना चाहिए या नहीं। ग्राहम का मानना ​​है कि अतिरिक्त वाक्यविन्यास का उपयोग उन स्थितियों में किया जाना चाहिए जहां शुद्ध एस-अभिव्यक्ति अत्यधिक क्रियात्मक होगी, मुझे नहीं लगता कि हमें लिस्प में वाक्यविन्यास शुरू करने का धार्मिक रूप से विरोध करना चाहिए। ग्राहम भी सोचते हैं कि प्रोग्रामर को अच्छी [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]] देकर दक्षता संबंधी समस्याओं का समाधान किया जाना चाहिए।<ref>{{cite web |url=http://www.paulgraham.com/langdes.html |title=भाषा डिज़ाइन के बारे में पाँच प्रश्न|last=Graham |first=Paul |date=May 2001 |website=PaulGraham.com |access-date=2018-12-05}}</ref>
 
सामान्यतः लिस्प प्रोग्रामर्स के मध्य विवाद यह है कि भाषा के [[एस-अभिव्यक्ति|एस-अभिव्यक्तियों]] को वाक्यविन्यास के अन्य रूपों द्वारा पूरक किया जाता है या नहीं किया जाता है। इस प्रकार ग्राहम का मानना यह ​​है कि अतिरिक्त वाक्यविन्यास का उपयोग उन स्थितियों में किया जाता है जहां शुद्ध एस-अभिव्यक्ति अत्यधिक क्रियात्मक होती है, अतः मुझे नहीं लगता है कि हमें लिस्प में वाक्यविन्यास प्रारंभ करने का धार्मिक रूप से विरोध करना चाहिए। इस प्रकार ग्राहम भी सोचते हैं कि प्रोग्रामर को अच्छी [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]] देकर दक्षता संबंधी समस्याओं का समाधान किया जा सकता है।<ref>{{cite web |url=http://www.paulgraham.com/langdes.html |title=भाषा डिज़ाइन के बारे में पाँच प्रश्न|last=Graham |first=Paul |date=May 2001 |website=PaulGraham.com |access-date=2018-12-05}}</ref>
=== स्वागत ===
=== स्वागत ===
2008 में रिलीज़ होने पर, आर्क ने मिश्रित प्रतिक्रियाएँ उत्पन्न कीं, कुछ लोगों ने इसे केवल लिस्प या स्कीम (प्रोग्रामिंग भाषा) का विस्तार कहा, न कि अपने आप में प्रोग्रामिंग भाषा। अन्य लोगों ने लिस्प को केवल आवश्यक चीजें उपलब्ध कराने के लिए आर्क की सराहना की। इसके जारी होने के कुछ ही समय बाद, आर्क को [[जावास्क्रिप्ट]] में पोर्ट कर दिया गया था, और इसे [[ ग्रहण (सॉफ्टवेयर) |ग्रहण (सॉफ्टवेयर)]] पर आधारित एकीकृत विकास वातावरण (आईडीई) स्कीमस्क्रिप्ट द्वारा समर्थित किया जा रहा था।<ref>{{cite web |url=https://www.theregister.co.uk/2008/02/07/lisp_arc_challenge/ |title=वेब पायनियर ने आलोचकों पर लिस्प गौंटलेट से प्रहार किया|website=The Register |date=2008-02-07 |place=[[United Kingdom|UK]]}}</ref>
सन्न 2008 में जारी होने पर, आर्क ने मिश्रित प्रतिक्रियाएँ उत्पन्न की थी, जिससे कि कुछ लोगों ने इसे केवल लिस्प या स्कीम (प्रोग्रामिंग भाषा) का विस्तार कहा था, न कि अपने आप में प्रोग्रामिंग भाषा। इस प्रकार अन्य लोगों ने लिस्प को केवल आवश्यक चीजें उपलब्ध कराने के लिए आर्क की सराहना की थी। इसके जारी होने के कुछ ही समय पश्चात्, आर्क को [[जावास्क्रिप्ट]] में पोर्ट कर दिया गया था, और इसे [[ ग्रहण (सॉफ्टवेयर) |ग्रहण (सॉफ्टवेयर)]] पर आधारित एकीकृत विकास वातावरण (आईडीई) योजना स्क्रिप्ट द्वारा समर्थित किया जा रहा था।<ref>{{cite web |url=https://www.theregister.co.uk/2008/02/07/lisp_arc_challenge/ |title=वेब पायनियर ने आलोचकों पर लिस्प गौंटलेट से प्रहार किया|website=The Register |date=2008-02-07 |place=[[United Kingdom|UK]]}}</ref>
== उदाहरण ==
== उदाहरण ==
[[ हैलो वर्ल्ड | हैलो वर्ल्ड]] इन आर्क:
आर्क में[[ हैलो वर्ल्ड | हैलो अक्षर]] :
<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">
  (prn "Hello, World")
  (prn "Hello, World")
</syntaxhighlight>
</syntaxhighlight>
आर्क की कठोरता को स्पष्ट करने के लिए, ग्राहम संक्षिप्त कार्यक्रम का उपयोग करता है। यह यूआरएल /said पर फ़ील्ड के साथ फॉर्म तैयार करता है। जब फॉर्म सबमिट किया जाता है, तो यह पेज पर ले जाता है जिसमें लिंक होता है जिस पर लिखा होता है कि यहां क्लिक करें, जो फिर मूल इनपुट फ़ील्ड के मान वाले पेज पर ले जाता है।<ref>{{cite web |url=http://www.paulgraham.com/arcchallenge.html |title=आर्क चैलेंज लें|last=Graham |first=Paul |date=February 2008 |website=PaulGraham.com |access-date=2018-12-05}}</ref>  
आर्क की कठोरता को स्पष्ट करने के लिए, ग्राहम संक्षिप्त कार्यक्रम का उपयोग करता है। इस प्रकार यह यूआरएल /"कहा" पर क्षेत्र के साथ फॉर्म तैयार करता है। सामान्यतः जब फॉर्म जमा किया जाता है, तब यह पृष्ठ पर ले जाता है जिसमें लिंक होता है जिस पर लिखा होता है कि यहां क्लिक करें, जो फिर मूल इनपुट क्षेत्र के मान वाले पृष्ठ पर ले जाता है।<ref>{{cite web |url=http://www.paulgraham.com/arcchallenge.html |title=आर्क चैलेंज लें|last=Graham |first=Paul |date=February 2008 |website=PaulGraham.com |access-date=2018-12-05}}</ref>  
<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">
(defop said req
(defop said req
Line 60: Line 61:


===आधिकारिक संस्करण===
===आधिकारिक संस्करण===
आर्क का पहला सार्वजनिक रूप से जारी संस्करण 29 जनवरी 2008 को उपलब्ध कराया गया था,<ref>{{cite web |url=http://www.paulgraham.com/arc0.html |title=आर्क आउट|last=Graham |first=Paul |date=29 January 2008 |website=PaulGraham.com |access-date=2018-12-05}}</ref> रैकेट (प्रोग्रामिंग भाषा) पर लागू किया गया (जिसे तब पीएलटी-स्कीम नाम दिया गया था)। रिलीज़ टार (कंप्यूटिंग)|.टार संग्रह के रूप में आती है, जिसमें आर्क के लिए रैकेट स्रोत कोड होता है। ट्यूटोरियल<ref>{{cite web |url=http://www.arclanguage.org/tut.txt |title=आर्क ट्यूटोरियल|author=<!-- Unstated. --> |date=<!-- Unstated. --> |website=Paul Graham |access-date=2018-12-05}}.</ref> और चर्चा मंच<ref>{{cite web |url=http://arclanguage.org/forum |title=आर्क फोरम|website=Arc language}}</ref> भी उपलब्ध हैं. फ़ोरम उसी प्रोग्राम का उपयोग करता है जो हैकर न्यूज़ करता है, और आर्क में लिखा गया है।
आर्क का प्रथम सार्वजनिक रूप से जारी संस्करण 29 जनवरी, सन्न 2008 को उपलब्ध कराया गया था,<ref>{{cite web |url=http://www.paulgraham.com/arc0.html |title=आर्क आउट|last=Graham |first=Paul |date=29 January 2008 |website=PaulGraham.com |access-date=2018-12-05}}</ref> जिससे कि रैकेट (प्रोग्रामिंग भाषा) पर क्रियान्वित किया गया था (जिसे तब पीएलटी-योजना नाम दिया गया था)। इस प्रकार रिलीज़ टार संग्रह के रूप में आती है, जिसमें आर्क के लिए रैकेट स्रोत कोड होता है। सामान्यतः ट्यूटोरियल<ref>{{cite web |url=http://www.arclanguage.org/tut.txt |title=आर्क ट्यूटोरियल|author=<!-- Unstated. --> |date=<!-- Unstated. --> |website=Paul Graham |access-date=2018-12-05}}.</ref> और चर्चा मंच<ref>{{cite web |url=http://arclanguage.org/forum |title=आर्क फोरम|website=Arc language}}</ref> भी उपलब्ध होता हैं, अतः फ़ोरम उसी प्रोग्राम का उपयोग करता है जो हैकर संदेश करता है, और आर्क में लिखा गया है।


=== अनौपचारिक संस्करण ===
=== अनौपचारिक संस्करण ===
आधिकारिक आर्क शाखा में अपडेट की कमी के कारण, अभ्यास के आर्क समुदाय के कुछ सदस्यों ने अनौपचारिक संशोधनों, एक्सटेंशन और पुस्तकालयों के साथ अपने स्वयं के भंडार शुरू किए। संस्करण, अनारकी,<ref>{{cite web |url=https://github.com/arclanguage/anarki |title=अराजकता|last=Rapp |first=Kenneth (kennethrapp) |date=14 November 2018 |website=GitHub |access-date=2018-12-05}}</ref> अनुमति है<ref>{{cite web |url=http://arclanguage.org/item?id=17707 |title=Announcement: anarki is no longer world-committable |last=Agaram |first=Kartik (akkartik) |date=27 May 2013 |website=Arc Forum |publisher=Arc language |access-date=2018-12-05}}</ref> किसी को भी परियोजना में परिवर्तन प्रस्तुत करना होगा और उसके पास समुदाय प्रबंधित विकी होगा।<ref>{{cite web |url=https://sites.google.com/site/arclanguagewiki |title=आर्क लैंग विकी|author=<!-- Unstated. --> |date=<!-- Unstated. --> |website=Sites |access-date=2018-12-05}}</ref>
आधिकारिक आर्क शाखा में अपडेट की कमी के कारण, अभ्यास के आर्क समुदाय के कुछ सदस्यों ने अनौपचारिक संशोधनों, विस्तार और पुस्तकालयों के साथ अपने स्वयं के भंडार प्रारंभ किए गये है। इस प्रकार संस्करण, अनारकी,<ref>{{cite web |url=https://github.com/arclanguage/anarki |title=अराजकता|last=Rapp |first=Kenneth (kennethrapp) |date=14 November 2018 |website=GitHub |access-date=2018-12-05}}</ref> अनुमति करता है<ref>{{cite web |url=http://arclanguage.org/item?id=17707 |title=Announcement: anarki is no longer world-committable |last=Agaram |first=Kartik (akkartik) |date=27 May 2013 |website=Arc Forum |publisher=Arc language |access-date=2018-12-05}}</ref> किसी को भी परियोजना में परिवर्तन प्रस्तुत करना होता है और उसके पास समुदाय प्रबंधित विकी होता है।<ref>{{cite web |url=https://sites.google.com/site/arclanguagewiki |title=आर्क लैंग विकी|author=<!-- Unstated. --> |date=<!-- Unstated. --> |website=Sites |access-date=2018-12-05}}</ref>
इंद्रधनुष<ref>{{cite web |url=https://github.com/conanite/rainbow |title=इंद्रधनुष|last=Dalton |first=Conan (conanite) |date=12 October 2010 |website=GitHub |access-date=2018-12-05}}</ref> [[जावा (प्रोग्रामिंग भाषा)]] में आर्क का कार्यान्वयन है।
 
इंद्रधनुष<ref>{{cite web |url=https://github.com/conanite/rainbow |title=इंद्रधनुष|last=Dalton |first=Conan (conanite) |date=12 October 2010 |website=GitHub |access-date=2018-12-05}}</ref> [[जावा (प्रोग्रामिंग भाषा)]] में आर्क का कार्यान्वयन करता है।


आर्केडिया<ref>{{cite web |url=https://github.com/kimtg/आर्केडिया|title=आर्केडिया|last=Kim |first=Taegyoon (kimtg) |date=19 August 2018 |website=GitHub |access-date=2018-12-05}}</ref> आर्क इन [[सी (प्रोग्रामिंग भाषा)]] का कार्यान्वयन है।
आर्केडिया<ref>{{cite web |url=https://github.com/kimtg/आर्केडिया|title=आर्केडिया|last=Kim |first=Taegyoon (kimtg) |date=19 August 2018 |website=GitHub |access-date=2018-12-05}}</ref> आर्क में [[सी (प्रोग्रामिंग भाषा)]] का कार्यान्वयन करता है।


==संदर्भ==
==संदर्भ==

Revision as of 10:41, 16 July 2023

आर्क
Paradigmsबहु-प्रतिमान: कार्यात्मक, मेटा, प्रक्रियात्मक
परिवारलिस्प
द्वारा डिज़ाइन किया गयापॉल ग्राहम
Developersपॉल ग्राहम, रॉबर्ट मॉरिस,
आर्क समुदाय
पहली प्रस्तुति29 January 2008; 16 years ago (2008-01-29)
Stable release
3.2 / 28 October 2018; 5 years ago (2018-10-28)[1]
टाइपिंग अनुशासनगतिशील
कार्यान्वयन भाषारैकेट
प्लेटफॉर्मIA-32, x86-64
ओएसलिनक्स
लाइसेंसकलात्मक लाइसेंस 2.0
फ़ाइल नाम एक्सटेंशनएस.आर्क
वेबसाइटआर्कभाषा.ओआरजी
Major implementations
आर्क, अनारकी, आर्केडिया, इंद्रधनुष
Influenced by
लिस्प, योजना

आर्क विशेष प्रकार की प्रोग्रामिंग भाषा होती है, जो लिस्प भाषा (प्रोग्रामिंग भाषा) की बोली (कंप्यूटिंग) होती है, जिसे पॉल ग्राहम (प्रोग्रामर) और रॉबर्ट टप्पन मॉरिस द्वारा विकसित किया गया है। यह कलात्मक लाइसेंस 2.0 के अनुसार जारी किया गया मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर (प्रोग्रामिंग भाषा) होता है।

इतिहास

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

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
 LISP 1, 1.5, LISP 2(abandoned)
 Maclisp
 Interlisp
 MDL
 Lisp Machine Lisp
 Scheme  R5RS  R6RS  R7RS small
 NIL
 ZIL (Zork Implementation Language)
 Franz Lisp
 Common Lisp  ANSI standard
 Le Lisp
 MIT Scheme
 T
 Chez Scheme
 Emacs Lisp
 AutoLISP
 PicoLisp
 Gambit
 EuLisp
 ISLISP
 OpenLisp
 PLT Scheme  Racket
 GNU Guile
 Visual LISP
 Clojure
 Arc
 LFE
 Hy

लक्ष्य

लोकप्रिय होने के निबंध में[3] ग्राहम ने भाषा के लिए अपने कुछ लक्ष्यों का वर्णन किया है। जबकि अनेक लक्ष्य बहुत सामान्य हैं ("आर्क हैक करने योग्य होता है", "अतः अच्छी पुस्तकालय (कम्प्यूटिंग) होती है"), उन्होंने कुछ विशेष बातें बताईं थी। उदाहरण के लिए, उनका मानना ​​है कि भाषा का संक्षिप्त होना आवश्यक होता है।

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

उन्होंने यह भी कहा है कि किसी भाषा के लिए केवल कम संख्या में स्वयंसिद्ध सिद्धांतों को क्रियान्वित करना उत्तम होता है, यदि इसका तात्पर्य यह होता है कि भाषा में वह विशेषताएं नही होती है जो बड़े संगठन चाहते हैं, जैसे कि ऑब्जेक्ट-ओरिएंटेशन (ओओ) इत्यादि। इसके अतिरिक्त, ग्राहम का मानना ​​है कि ओओ उपयोगी नहीं होता है जिससे कि इसकी विधि और सॉफ़्टवेयर डिज़ाइन पैटर्न केवल अच्छे डिज़ाइन होते हैं, और वह ओओ को क्रियान्वित करने के लिए उपयोग की जाने वाली भाषा सुविधाओं को आंशिक रूप से गलत मानते हैं।[4][5] इस प्रकार सन्न 2008 में आर्क के परिचय में, ग्राहम ने कहा था कि इसका लाभ इसकी संक्षिप्तता है।[6]

सामान्यतः लिस्प प्रोग्रामर्स के मध्य विवाद यह है कि भाषा के एस-अभिव्यक्तियों को वाक्यविन्यास के अन्य रूपों द्वारा पूरक किया जाता है या नहीं किया जाता है। इस प्रकार ग्राहम का मानना यह ​​है कि अतिरिक्त वाक्यविन्यास का उपयोग उन स्थितियों में किया जाता है जहां शुद्ध एस-अभिव्यक्ति अत्यधिक क्रियात्मक होती है, अतः मुझे नहीं लगता है कि हमें लिस्प में वाक्यविन्यास प्रारंभ करने का धार्मिक रूप से विरोध करना चाहिए। इस प्रकार ग्राहम भी सोचते हैं कि प्रोग्रामर को अच्छी प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग) देकर दक्षता संबंधी समस्याओं का समाधान किया जा सकता है।[7]

स्वागत

सन्न 2008 में जारी होने पर, आर्क ने मिश्रित प्रतिक्रियाएँ उत्पन्न की थी, जिससे कि कुछ लोगों ने इसे केवल लिस्प या स्कीम (प्रोग्रामिंग भाषा) का विस्तार कहा था, न कि अपने आप में प्रोग्रामिंग भाषा। इस प्रकार अन्य लोगों ने लिस्प को केवल आवश्यक चीजें उपलब्ध कराने के लिए आर्क की सराहना की थी। इसके जारी होने के कुछ ही समय पश्चात्, आर्क को जावास्क्रिप्ट में पोर्ट कर दिया गया था, और इसे ग्रहण (सॉफ्टवेयर) पर आधारित एकीकृत विकास वातावरण (आईडीई) योजना स्क्रिप्ट द्वारा समर्थित किया जा रहा था।[8]

उदाहरण

आर्क में हैलो अक्षर :

 (prn "Hello, World")

आर्क की कठोरता को स्पष्ट करने के लिए, ग्राहम संक्षिप्त कार्यक्रम का उपयोग करता है। इस प्रकार यह यूआरएल /"कहा" पर क्षेत्र के साथ फॉर्म तैयार करता है। सामान्यतः जब फॉर्म जमा किया जाता है, तब यह पृष्ठ पर ले जाता है जिसमें लिंक होता है जिस पर लिखा होता है कि यहां क्लिक करें, जो फिर मूल इनपुट क्षेत्र के मान वाले पृष्ठ पर ले जाता है।[9]

(defop said req
  (aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
    (input "foo") 
    (submit)))

संस्करण

आधिकारिक संस्करण

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

अनौपचारिक संस्करण

आधिकारिक आर्क शाखा में अपडेट की कमी के कारण, अभ्यास के आर्क समुदाय के कुछ सदस्यों ने अनौपचारिक संशोधनों, विस्तार और पुस्तकालयों के साथ अपने स्वयं के भंडार प्रारंभ किए गये है। इस प्रकार संस्करण, अनारकी,[13] अनुमति करता है[14] किसी को भी परियोजना में परिवर्तन प्रस्तुत करना होता है और उसके पास समुदाय प्रबंधित विकी होता है।[15]

इंद्रधनुष[16] जावा (प्रोग्रामिंग भाषा) में आर्क का कार्यान्वयन करता है।

आर्केडिया[17] आर्क में सी (प्रोग्रामिंग भाषा) का कार्यान्वयन करता है।

संदर्भ

  1. "Arc Forum: Tell Arc: Arc 3.2". Arclanguage.org. Retrieved 2018-11-07.
  2. "Arc Forum: install". Arclanguage.org. Retrieved 2018-11-07.
  3. Graham, Paul (May 2001). "लोकप्रिय होना". PaulGraham.com. Retrieved 2018-12-05.
  4. Graham, Paul. "आर्क विशेष रूप से ऑब्जेक्ट-ओरिएंटेड क्यों नहीं है?". PaulGraham.com. Retrieved 2018-12-05.
  5. Graham, Paul. "आर्क अक्सर पूछे जाने वाले प्रश्न". PaulGraham.com. Retrieved 2018-12-05.
  6. Huber, Mathias (2008-02-08). "आर्क प्रोग्राम को छोटा बनाता है". Linux Magazine. Lawrence, Kansas: Linux New Media USA. Retrieved 2018-11-25.
  7. Graham, Paul (May 2001). "भाषा डिज़ाइन के बारे में पाँच प्रश्न". PaulGraham.com. Retrieved 2018-12-05.
  8. "वेब पायनियर ने आलोचकों पर लिस्प गौंटलेट से प्रहार किया". The Register. UK. 2008-02-07.
  9. Graham, Paul (February 2008). "आर्क चैलेंज लें". PaulGraham.com. Retrieved 2018-12-05.
  10. Graham, Paul (29 January 2008). "आर्क आउट". PaulGraham.com. Retrieved 2018-12-05.
  11. "आर्क ट्यूटोरियल". Paul Graham. Retrieved 2018-12-05..
  12. "आर्क फोरम". Arc language.
  13. Rapp, Kenneth (kennethrapp) (14 November 2018). "अराजकता". GitHub. Retrieved 2018-12-05.
  14. Agaram, Kartik (akkartik) (27 May 2013). "Announcement: anarki is no longer world-committable". Arc Forum. Arc language. Retrieved 2018-12-05.
  15. "आर्क लैंग विकी". Sites. Retrieved 2018-12-05.
  16. Dalton, Conan (conanite) (12 October 2010). "इंद्रधनुष". GitHub. Retrieved 2018-12-05.
  17. Kim, Taegyoon (kimtg) (19 August 2018). "आर्केडिया". GitHub. Retrieved 2018-12-05.


बाहरी संबंध