"निकट भविष्य में, प्रोग्रामर के श्रम की लागत की तुलना में प्रोग्राम को चलाने और चलाने के लिए आवश्यक कंप्यूटरों के हार्डवेयर की लागत नगण्य होगी, इसलिए यह प्रोग्रामिंग भाषाओं को विकसित करने के लिए समझ में आता है, हालांकि कंप्यूटर संसाधनों पर अधिक मांग, कोड की मात्रा को कम कर सकती है," 80 के दशक के मध्य में आईबीएम डेवलपर्स के एपीएल समूह का नेतृत्व करने वाले डॉ। जिम ब्राउन ने कुछ इस तरह से सोचा। खैर, उनकी भविष्यवाणी केवल आंशिक रूप से सच हुई। अब एपीएल का उपयोग किया जाता है, और वित्तीय और वैज्ञानिक गणनाओं की प्रोग्रामिंग के लिए काफी सफलतापूर्वक, यह .NET प्लेटफ़ॉर्म का हिस्सा है और नवंबर 2010 तक TIOBE इंडेक्स में यह 33 वें स्थान (रेटिंग 0.366%) पर है।
एपीएल वास्तव में आपको कोड की मात्रा को कम करने की अनुमति देता है, और उस पर प्रोग्राम करना आसान और सुखद है, केवल इसका सिंटैक्स अन्य सभी लोकप्रिय प्रोग्रामिंग भाषाओं के विपरीत है, जो कि अधिकांश "संभावित प्रशंसकों" को डराता है। मैं आपको APL से अधिक निकटता से परिचित कराने की कोशिश करूंगा, यह भाषा काफी उपयोगी है, और पहली नज़र में भयावह होने के बावजूद, यह तार्किक, सुंदर है, और बड़े डेटा सरणियों के साथ गणितीय गणना और संचालन प्रोग्रामिंग के लिए भी विकास उपकरण का सबसे अच्छा विकल्प है।
तो, एपीएल, संक्षिप्त नाम बहुत सरल है: एक प्रोग्रामिंग भाषा। केनेथ ई। इवरसन ने 1957 में हार्वर्ड विश्वविद्यालय में अपने काम के दौरान भाषा का विचार रखा और 1964 में आईबीएम में अपने काम के दौरान इसका अहसास पाया। एपीएल का उपयोग करने का चरम 80 के दशक के मध्य में था, जब भाषा के कई संस्करण थे और माइक्रोकंट्रोलर सहित बोलियाँ। कुछ बिंदु पर, यहां तक कि माइक्रोसॉफ्ट कॉर्पोरेशन ने एपीएल के अपने संस्करण को जारी करने की योजना बनाई, लेकिन अज्ञात कारणों से, यह रिलीज नहीं हुई। 80 के दशक की शुरुआत में, भाषा का एक नया संस्करण दिखाई दिया - एपीएल 2, जिसे डॉ। जिम ब्राउन के नेतृत्व में आईबीएम विकास दल द्वारा बनाया गया था। यह संस्करण आधुनिक एपीएल का आधार बन गया।
अब लगभग एक दर्जन अलग-अलग एपीएल दुभाषिए हैं। इनमें से मुख्य हैं Dyalog APL, APL Now और MicroAPL, तीनों विंडोज, यूनिक्स और लिनक्स के साथ काम करते हैं, और MacOS के साथ अंतिम एक (मैं बाद में Dyalog APL का उपयोग करके उदाहरण दूंगा, इसके अलावा, छात्र Dyalog वेबसाइट से मुफ्त में इंटरप्रेटर डाउनलोड कर सकते हैं:
dss .dyalog.com / edu )।
चूंकि एपीएल पर्यावरण कई गैर-मानक वर्णों का उपयोग करता है, इसलिए विकास के लिए एक विशेष कीबोर्ड लेआउट का उपयोग किया जाता है। Dyalog APL के नवीनतम संस्करणों में, विशेष वर्णों को पहले ही सीधे इंस्ट्रूमेंट पैनल पर ले जाया गया है और आप जिस चरित्र को चाहते हैं, उस पर क्लिक करके चयन करना आसान है।


तो, हमें यह सब क्यों चाहिए? भाषा की मुख्य विशेषताएं और लाभ निम्नलिखित हैं:
1. क्रॉस-प्लेटफॉर्म कार्यान्वयन।
2. गणना दाएं से बाएं ओर होती है, और गणना की गई प्रक्रिया को बाईं ओर फ़ंक्शन को सौंपा जाता है। मैं एक उदाहरण दूंगा:

3. कोड की मात्रा कम से कम है, विशेष वर्णों के उपयोग के लिए धन्यवाद, और यह तथ्य कि सभी ऑपरेशन सीधे सरणी पर किए जा सकते हैं, अर्थात छोरों का उपयोग करने की कोई आवश्यकता नहीं है। उदाहरण के लिए, एक सरणी बनाएं, सरणी के सभी तत्वों का योग ढूंढें, सरणी की लंबाई ढूंढें, और फिर सरणी के प्रत्येक तत्व को 1 + सरणी तत्व की संख्या बढ़ाएं।

इन नियमों के लिए धन्यवाद, एपीएल वास्तव में आपको किसी भी फ़ंक्शन को कोड की एक पंक्ति में लागू करने की अनुमति देता है। एक परिचित ने एपीएल पर बहुत सारे मैंडलब्रॉट को लागू किया, लेकिन
यहां आप प्रसिद्ध गेम "लाइफ" के कार्यान्वयन को डाउनलोड कर सकते हैं, ज़ाहिर है, कोड की एक पंक्ति के साथ भी।
एक और विशाल प्लस बड़े मैट्रिसेस के साथ काम करने की क्षमता है। ग्राहक जो हमारे सॉफ़्टवेयर उत्पाद का उपयोग करते हैं (और ग्राहक निवेश बैंक, पेंशन फंड, बैंकिंग गठबंधन हैं) अक्सर एक धुरी पर 100,000 के आयामों के साथ मैट्रिसेस में डेटा होते हैं। APL आपको ऐसे मैट्रिसेस पर विभिन्न गणितीय संक्रियाओं को करने की अनुमति देता है जो बिना किसी प्रदर्शन के त्याग करते हैं।
विपक्ष, ज़ाहिर है, भी मौजूद हैं। मुख्य एक, जैसा कि एक से अधिक बार उल्लेख किया गया है, एक असामान्य वाक्यविन्यास है। लंबे समय तक, एपीएल को आमतौर पर एक "केवल लिखने वाली भाषा" माना जाता था, क्योंकि लिखित कोड को समझना काफी मुश्किल है। अब, भाषा सुविधाओं का केवल एक छोटा सा हिस्सा मुख्य रूप से उपयोग किया जाता है, इसलिए कुछ महत्वपूर्ण पात्रों के साथ ऐसा करना संभव है, और आम तौर पर .Net पुस्तकालयों के अंदर एपीएल कोड को एन्क्रिप्ट किया जाता है।
प्रारंभ में, एपीएल एक कार्यात्मक-मॉड्यूलर प्रोग्रामिंग भाषा थी, हालांकि आधुनिक एपीएल ओओपी का समर्थन करता है, लेकिन इसे हल्के ढंग से डालने के लिए पूरी तरह से ऑब्जेक्ट-ओरिएंटेड कोड लिखना बहुत सरल और पठनीय नहीं है। हालांकि, यह इस तथ्य को ध्यान में रखने योग्य है कि भाषा के साथ जटिल वस्तुओं को बनाने की क्षमता का समर्थन किया जाता है। सिद्धांत रूप में, आधुनिक एपीएल एक ग्राफिकल इंटरफ़ेस (ऐसा करने से भगवान को मना करना) बनाने के लिए संभव बनाता है, लेकिन सुखद से: यह एक्सएमएल और लैम्ब्डा अभिव्यक्तियों का समर्थन करता है।
मैं कुछ और उदाहरण दूंगा ताकि आप भाषा को महसूस कर सकें।
एपीएल सरणियों और मैट्रिस के साथ काम करने के लिए बहुत शक्तिशाली तंत्र प्रदान करता है। सरणी के तत्व किसी भी प्रकार के हो सकते हैं, सरणियाँ किसी भी स्तर के घोंसले के हो सकते हैं, और आप आसानी से सरणी के किसी भी तत्व को प्राप्त कर सकते हैं। 10 से 10 मैट्रिक्स बनाएं और 1 से 100 तक के तत्वों से भरें। मानक पंक्तियों को मैट्रिक्स की पंक्तियों से संबोधित किया जाता है:

अब 3 तत्वों की एक सरणी बनाएँ: संख्याएँ, पंक्तियाँ और हमारा मैट्रिक्स। हम आसानी से सरणी के किसी भी तत्व को प्राप्त कर सकते हैं। दूसरे अक्षर को लाइन में और मैट्रिक्स के अंतिम तत्व को बदलें (केवल सरणी बदल गया है, मैट्रिक्स मैट्रिक्स नहीं बदला है)।

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


हमें एपीएल डीबगर का भी उल्लेख करना चाहिए। आप चर के मूल्यों को बदल सकते हैं और रनटाइम पर स्टैक पर आगे बढ़ सकते हैं, जो अच्छी खबर है। आपको बस ट्रेस मोड से एडिट मोड में स्विच करना होगा।
मैं फ़ंक्शन की अंतिम पंक्ति को निष्पादित करने से पहले वेरिएबल को 1 में बदल देता हूं, दाईं ओर एक वॉच विंडो है जिसमें रेस वेरिएबल का मान है:

आप कई उदाहरण दिखा सकते हैं, लेकिन सबसे आसान विकल्प Dyalog APL डाउनलोड करें और इसे स्वयं आज़माएं। उसी समय, प्रतीकों द्वारा प्रस्तुत मानक कार्यों से खुद को परिचित करें। जब आप किसी प्रतीक पर होवर करते हैं, तो उसके फ़ंक्शन और एप्लिकेशन के बारे में जानकारी दिखाई देती है।

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

मुझे लगता है कि यह जानकारी आपके लिए स्वयं भाषा के साथ सहज होने के लिए पर्याप्त होनी चाहिए। अंत में, मैं कुछ और वीडियो ट्यूटोरियल की सलाह दे सकता हूं।
मुझे आशा है कि मैं आपकी रुचि में कामयाब रहा, क्योंकि यह अनुचित लगता है कि एपीएल के बारे में कोई रूसी भाषा के लेख नहीं हैं और सामान्य तौर पर यह हमारे साथ पूरी तरह से अलोकप्रिय है। और, निश्चित रूप से, मैं आपके सवालों और / या टिप्पणियों का जवाब देने की कोशिश करूंगा।