एपीएल (प्रोग्रामिंग भाषा)

एपीएल (पुस्तक ए प्रोग्रामिंग लैंग्वेज के नाम पर) 1960 के दशक में Kenneth E. Iverson द्वारा विकसित एक प्रोग्रामिंग भाषा है। इसका केंद्रीय डेटा प्रकार ऐरे डेटा प्रकार # बहु-आयामी सरणियाँ है। यह एपीएल सिंटैक्स और प्रतीकों की एक बड़ी श्रृंखला का उपयोग करता है अधिकांश कार्यों और ऑपरेटरों का प्रतिनिधित्व करने के लिए, बहुत संक्षिप्त कोड के लिए अग्रणी। अवधारणा मॉडलिंग, स्प्रेडशीट, कार्यात्मक प्रोग्रामिंग के विकास पर इसका महत्वपूर्ण प्रभाव रहा है। और कंप्यूटर गणित पैकेज। इसने कई अन्य प्रोग्रामिंग भाषाओं को भी प्रेरित किया है।

गणितीय अंकन
1957 में हार्वर्ड विश्वविद्यालय में शुरू करते हुए, केनेथ ई. इवरसन द्वारा सरणियों में हेरफेर करने के लिए एक गणितीय संकेतन विकसित किया गया था। 1960 में, उन्होंने आईबीएम के लिए काम करना शुरू किया, जहां उन्होंने एडिन फाल्कॉफ के साथ इस अंकन को विकसित किया और 1962 में इसे अपनी पुस्तक ए प्रोग्रामिंग लैंग्वेज में प्रकाशित किया। प्रस्तावना इसका आधार बताता है: "Applied mathematics is largely concerned with the design and analysis of explicit procedures for calculating the exact or approximate values of various functions. Such explicit procedures are called algorithms or programs. Because an effective notation for the description of programs exhibits considerable syntactic structure, it is called a programming language." कंप्यूटर सिस्टम पर संक्षिप्त शोध रिपोर्ट के लिए IBM के अंदर इस संकेतन का उपयोग किया गया था, जैसे कि बरोज़ B5000 और इसका स्टैक मैकेनिज्म जब स्टैक मशीन बनाम रजिस्टर मशीन का मूल्यांकन आगामी कंप्यूटरों के लिए IBM द्वारा किया जा रहा था।

आइवरसन ने अध्याय ए प्रोग्रामिंग लैंग्वेज के एक मसौदे में भी अपने अंकन का इस्तेमाल किया, जिसे उन्होंने फ्रेड ब्रूक्स के साथ लिखी गई एक किताब के लिए लिखा था, स्वचालित डाटा प्रोसेसिंग, जिसे 1963 में प्रकाशित किया जाएगा। 1979 में, आइवरसन को एपीएल पर अपने काम के लिए ट्यूरिंग अवार्ड मिला।

कंप्यूटर प्रोग्रामिंग भाषा में विकास
1962 की शुरुआत में, एक पूर्ण कंप्यूटर सिस्टम का वर्णन करने के लिए संकेतन का उपयोग करने का पहला प्रयास तब हुआ जब फाल्कॉफ़ ने विलियम सी. कार्टर के साथ मशीनों के लिए निर्देश सेट को मानकीकृत करने के अपने काम पर चर्चा की, जो बाद में आईबीएम सिस्टम/360 परिवार बन गया।

1963 में, आईबीएम सिस्टम्स रिसर्च इंस्टीट्यूट में काम कर रहे हर्बर्ट हेलरमैन ने आईबीएम 1620 कंप्यूटर पर अंकन के एक हिस्से को लागू किया, और इसका उपयोग छात्रों द्वारा एक विशेष हाई स्कूल पाठ्यक्रम में श्रृंखला योग द्वारा अनुवांशिक कार्यों की गणना करने के लिए किया गया था। छात्रों ने हेलरमैन की प्रयोगशाला में अपने कोड का परीक्षण किया। अंकन के एक भाग के इस कार्यान्वयन को वैयक्तिकृत ऐरे ट्रांसलेटर (पीएटी) कहा जाता था। 1963 में, Falkoff, Iverson, और Edward H. Sussenguth Jr., जो सभी IBM में काम कर रहे थे, ने IBM सिस्टम/360 सीरीज़ मशीन आर्किटेक्चर और कार्यक्षमता के औपचारिक विवरण के लिए नोटेशन का उपयोग किया, जिसके परिणामस्वरूप आईबीएम सिस्टम्स जर्नल में एक पेपर प्रकाशित हुआ। 1964. इसके प्रकाशित होने के बाद, टीम ने कंप्यूटर सिस्टम पर नोटेशन के कार्यान्वयन पर ध्यान दिया। कार्यान्वयन के इस फोकस के लिए प्रेरणाओं में से एक जॉन एल लॉरेंस की रुचि थी, जिनके पास 1964 में आईबीएम द्वारा खरीदी गई एक शैक्षिक कंपनी साइंस रिसर्च एसोसिएट्स के साथ नए कर्तव्य थे। लॉरेंस ने इवरसन और उनके समूह को भाषा को एक उपकरण के रूप में उपयोग करने में मदद करने के लिए कहा। शिक्षा में कंप्यूटर का विकास और उपयोग। स्टैनफोर्ड यूनिवर्सिटी के लॉरेंस एम. ब्रीड और फिलिप एस. अब्राम्स आईबीएम रिसर्च में टीम में शामिल होने के बाद, उन्होंने फोरट्रान चतुर्थ में एक कार्यान्वयन प्रोग्राम पर अपना पूर्व कार्य जारी रखा, जो कि आईबीएम 7090 कंप्यूटर पर चल रहे नोटेशन के एक भाग के लिए किया गया था। आईबीएम 7090/94 आईबीएसवाईएस ऑपरेटिंग सिस्टम। यह काम 1965 के अंत में समाप्त हो गया था और बाद में IVSYS (इवरसन सिस्टम के लिए) नाम दिया गया। 1966 में स्टैनफोर्ड यूनिवर्सिटी टेक्निकल रिपोर्ट, एन इंटरप्रेटर फॉर इवरसन नोटेशन में अब्राम्स द्वारा इस कार्यान्वयन के आधार का विस्तार से वर्णन किया गया था, इसके अकादमिक पहलू की औपचारिक रूप से निक्लॉस विर्थ द्वारा निगरानी की गई थी। पहले हेलरमैन की पीएटी प्रणाली की तरह, इस कार्यान्वयन में एपीएल वर्ण सेट शामिल नहीं था, लेकिन कार्यों और ऑपरेटरों के लिए विशेष अंग्रेजी आरक्षित शब्दों का इस्तेमाल किया गया था। सिस्टम को बाद में टाइम-शेयरिंग सिस्टम के लिए अनुकूलित किया गया था और नवंबर 1966 तक, इसे आईबीएम सिस्टम/360 मॉडल 50 कंप्यूटर के लिए टाइम-शेयरिंग मोड में चलाने के लिए फिर से प्रोग्राम किया गया था और आईबीएम में आंतरिक रूप से इस्तेमाल किया गया था।

हार्डवेयर


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

वाणिज्यिक उपलब्धता
पहला एपीएल इंटरैक्टिव लॉगिन और एपीएल कार्यक्षेत्र का निर्माण 1966 में लैरी ब्रीड द्वारा आईबीएम 1050 टर्मिनल का उपयोग करके थॉमस जे. वाटसन रिसर्च सेंटर के पास आईबीएम मोहनसिक लैब्स में किया गया था, जो यॉर्कटाउन हाइट्स, न्यूयॉर्क में एपीएल का घर है।

आईबीएम मुख्य रूप से एपीएल को बाजार में पेश करने के लिए जिम्मेदार था। एपीएल का पहला सार्वजनिक रूप से उपलब्ध संस्करण 1968 में आईबीएम 1130 के लिए जारी किया गया था। आईबीएम ने एपीएल\1130 मुफ्त में प्रदान किया था लेकिन बिना किसी दायित्व या समर्थन के। यह कम से कम 8k 16-बिट शब्दों की मेमोरी में चलता है, और एक समर्पित 1 मेगाबाइट हार्ड डिस्क का उपयोग करता है।

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

आईबीएम 360 और आईबीएम 370 हार्डवेयर के लिए शुरुआती आईबीएम एपीएल दुभाषियों ने मेजबान सेवाओं पर भरोसा करने के बजाय अपने स्वयं के बहु-उपयोगकर्ता प्रबंधन को लागू किया, इस प्रकार वे अपने स्वयं के टाइमशेयरिंग सिस्टम थे। पहली बार 1966 में IBM में उपयोग के लिए पेश किया गया, APL\360 सिस्टम एक बहु-उपयोगकर्ता दुभाषिया था। जानकारी के लिए ऑपरेटिंग सिस्टम के साथ प्रोग्रामेटिक रूप से संवाद करने और दुभाषिया सिस्टम चर सेट करने की क्षमता विशेष विशेषाधिकार प्राप्त आई-बीम फ़ंक्शंस के माध्यम से की गई थी, दोनों मोनाड (कार्यात्मक प्रोग्रामिंग) और डायाडिक्स ऑपरेशंस का उपयोग करते हुए। 1973 में, IBM ने APL.SV जारी किया, जो उसी उत्पाद की निरंतरता थी, लेकिन जिसने APL सिस्टम के बाहर सुविधाओं तक पहुँचने के साधन के रूप में साझा चर की पेशकश की, जैसे कि ऑपरेटिंग सिस्टम फ़ाइलें। 1970 के दशक के मध्य में, IBM मेनफ्रेम दुभाषिया को IBM 5100 डेस्कटॉप कंप्यूटर पर उपयोग के लिए भी अनुकूलित किया गया था, जिसमें एक छोटा CRT और एक APL कीबोर्ड था, जब उस समय के अधिकांश अन्य छोटे कंप्यूटर केवल BASIC की पेशकश करते थे। 1980 के दशक में, VSAPL प्रोग्राम प्रोडक्ट का संवादी मॉनिटर सिस्टम (CMS), टाइम शेयरिंग ऑप्शन (TSO), VSPC, MUSIC/SP, और CICS उपयोगकर्ताओं के साथ व्यापक उपयोग हुआ।

1973-1974 में, पैट्रिक ई. हैगर्टी ने स्पेरी यूनीवैक 1100/2200 श्रृंखला मेनफ्रेम कंप्यूटर की 1100 पंक्ति के लिए मैरीलैंड विश्वविद्यालय एपीएल दुभाषिया के कार्यान्वयन का निर्देशन किया। उस समय स्पेरी के पास कुछ नहीं था। 1974 में, छात्र एलन स्टीबेन्स को एक आंतरिक कार्य को लागू करने का कार्य सौंपा गया था। ज़ेरॉक्स एपीएल जून 1975 से ज़ेरॉक्स 560 और सिग्मा 6, 7, और 9 मेनफ्रेम पर चलने वाले यूनिवर्सल टाइम-शेयरिंग सिस्टम #CP-V|CP-V और हनीवेल सीपी-6 के लिए उपलब्ध था। 1960 और 1970 के दशक में, कई टाइमशेयरिंग फर्मों का उदय हुआ जिन्होंने IBM APL\360 के संशोधित संस्करणों का उपयोग करके APL सेवाओं को बेचा। दुभाषिया। उत्तरी अमेरिका में, आईपी ​​​​शार्प एसोसिएट्स, साइंटिफिक टाइम शेयरिंग कॉर्पोरेशन (STSC), टाइम शेयरिंग रिसोर्सेज (TSR) और द कंप्यूटर कंपनी (TCC) बेहतर ज्ञात थे। CompuServe ने 1978 में डिजिटल इक्विपमेंट कॉर्प और कार्नेगी मेलन के संशोधित संस्करण के आधार पर APL इंटरप्रेटर के साथ बाजार में प्रवेश किया, जो DEC के KI और KL 36-बिट मशीनों पर चलता था। CompuServe का APL इसके वाणिज्यिक बाजार और उपभोक्ता सूचना सेवा दोनों के लिए उपलब्ध था। 1980 के दशक के मध्य तक आईबीएम 4300 जैसे कम महंगे मेनफ्रेम और बाद में पर्सनल कंप्यूटर के आगमन के साथ, टाइमशेयरिंग उद्योग लगभग समाप्त हो गया था।

तीव्र एपीएल आईपी शार्प एसोसिएट्स से उपलब्ध था, पहले 1960 के दशक में टाइमशेयरिंग सेवा के रूप में, और बाद में 1979 के आसपास शुरू होने वाले एक प्रोग्राम उत्पाद के रूप में। एक चर में अधिक ऑब्जेक्ट), फ़ाइल सिस्टम, नेस्टेड सरणियाँ और साझा चर।

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

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

माइक्रो कंप्यूटर
माइक्रो कंप्यूटर पर, जो 1970 के दशक के मध्य से उपलब्ध हो गया, BASIC प्रमुख प्रोग्रामिंग भाषा बन गई। फिर भी, कुछ माइक्रो कंप्यूटरों ने इसके बजाय एपीएल प्रदान किया - पहला इंटेल 8008-आधारित एमसीएम/70 था जो 1974 में जारी किया गया था। और जो मुख्य रूप से शिक्षा में उपयोग किया जाता था। इस समय की एक और मशीन 1977 में रिलीज़ हुई वीडियोब्रेन फैमिली कंप्यूटर थी, जिसे एपीएल/एस नामक एपीएल की अपनी बोली के साथ आपूर्ति की गई थी। 1981 में पेश किए गए कमोडोर सुपरपेट में वाटरलू विश्वविद्यालय द्वारा विकसित एक एपीएल दुभाषिया शामिल था। 1976 में, बिल गेट्स ने शौकियों के लिए अपने खुले पत्र में दावा किया कि माइक्रोसॉफ्ट कॉर्पोरेशन इंटेल 8080 और मोटोरोला 6800 के लिए एपीएल लागू कर रहा था, लेकिन सॉफ्टवेयर पायरेसी के कारण शौकियों को [इसे] उपलब्ध कराने के लिए बहुत कम प्रोत्साहन था। यह कभी जारी नहीं किया गया था।

एपीएल2
1980 के दशक की शुरुआत में, जिम ब्राउन (कंप्यूटर वैज्ञानिक) के नेतृत्व में आईबीएम एपीएल विकास ने एपीएल भाषा का एक नया संस्करण लागू किया, जिसमें इसकी प्राथमिक वृद्धि के रूप में नेस्टेड सरणियों की अवधारणा शामिल थी, जहां एक सरणी में अन्य सरणियाँ हो सकती हैं, और नई भाषा सुविधाएँ जो नेस्टेड सरणियों को प्रोग्राम वर्कफ़्लो में एकीकृत करने की सुविधा प्रदान करती हैं। केन इवरसन, अब एपीएल भाषा के विकास के नियंत्रण में नहीं थे, उन्होंने आईबीएम छोड़ दिया और आईपी शार्प एसोसिएट्स में शामिल हो गए, जहां उनके प्रमुख योगदानों में से एक शार्प एपीएल के विकास को उनकी दृष्टि के अनुरूप बनाने का निर्देश दे रहा था।  APL2 को पहली बार 1984 में कन्वर्सेशनल मॉनिटर सिस्टम और टाइम शेयरिंग ऑप्शन के लिए रिलीज़ किया गया था। APL2 वर्कस्टेशन संस्करण (Windows, OS/2, IBM AIX, Linux, और Solaris (ऑपरेटिंग सिस्टम)) बाद में आया। जैसा कि अन्य विक्रेता नए हार्डवेयर के लिए एपीएल इंटरप्रेटर विकसित करने में व्यस्त थे, विशेष रूप से यूनिक्स-आधारित माइक्रो कंप्यूटर, एपीएल2 लगभग हमेशा नए एपीएल दुभाषिया विकास के लिए चुना गया मानक था। आज भी, अधिकांश एपीएल विक्रेता या उनके उपयोगकर्ता उन उत्पादों के विक्रय बिंदु के रूप में एपीएल2 अनुकूलता का हवाला देते हैं। आईबीएम समस्या समाधान, सिस्टम डिजाइन, प्रोटोटाइप, इंजीनियरिंग और वैज्ञानिक संगणना, विशेषज्ञ प्रणाली, के लिए इसके उपयोग का हवाला देता है। गणित और अन्य विषयों को पढ़ाने, विज़ुअलाइज़ेशन और डेटाबेस एक्सेस के लिए।

आधुनिक कार्यान्वयन
APLX, Dyalog, et al. द्वारा APL के विभिन्न कार्यान्वयनों में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के लिए एक्सटेंशन, .NET फ्रेमवर्क के लिए समर्थन, XML-सरणी रूपांतरण आदिम, रेखांकन, ऑपरेटिंग सिस्टम इंटरफेस और लैम्ब्डा कैलकुलस एक्सप्रेशन शामिल हैं। फ्रीवेयर संस्करणों में लिनक्स के लिए GNU APL और विंडोज के लिए NARS2000 (जो वाइन के तहत लिनक्स पर चलता है) शामिल हैं। ये दोनों विभिन्न भाषा विस्तारों के साथ APL2 के काफी पूर्ण संस्करण हैं।

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

कैरेक्टर सेट
एक अद्वितीय, गैर-मानक चरित्र सेट की अपनी पसंद के लिए एपीएल की आलोचना और प्रशंसा की गई है। कुछ जो इसे सीखते हैं वे उत्साही अनुयायी बन जाते हैं। 1960 और 1970 के दशक में, कुछ टर्मिनल डिवाइस या यहां तक ​​कि डिस्प्ले एपीएल कैरेक्टर सेट को पुन: उत्पन्न कर सकते थे। सबसे लोकप्रिय लोगों ने एक विशेष एपीएल प्रकार के तत्व के साथ उपयोग किए जाने वाले आईबीएम चयनकर्ता प्रिंट तंत्र को नियोजित किया। शुरुआती एपीएल कंप्यूटर टर्मिनल में से एक (लाइन-मोड ऑपरेशन केवल, पूर्ण स्क्रीन नहीं) टेक्सास इंस्ट्रूमेंट्स टीआई मॉडल 745 था (c. 1977) पूरे एपीएल कैरेक्टर सेट के साथ जिसमें एपीएल टाइम-शेयरिंग सर्विस या रिमोट कंप्यूटर जॉब, रिमोट जॉब एंट्री चलाने के लिए रिमोट मेनफ्रेम के साथ इंटरैक्ट करने के लिए डुप्लेक्स (दूरसंचार) दूरसंचार मोड शामिल हैं।

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

डिजाइन
परंपरागत रूप से समारोह (प्रोग्रामिंग) भाषाओं के विपरीत, एपीएल कोड को आम तौर पर यूनरी ऑपरेशन या बाइनरी ऑपरेशन फ़ंक्शन (प्रोग्रामिंग) और उच्च-क्रम फ़ंक्शन की श्रृंखला के रूप में संरचित किया जाता है। सरणी डेटा प्रकार पर कार्य करना। रेफरी> एपीएल में कई गैर-मानक आदिम (फ़ंक्शन और ऑपरेटर) हैं जो एक प्रतीक या कुछ प्रतीकों के संयोजन द्वारा इंगित किए जाते हैं। सभी प्रिमिटिव को एक ही ऑपरेटर वरीयता के लिए परिभाषित किया गया है, और हमेशा दाईं ओर संबद्ध होता है। इस प्रकार, एपीएल को एपीएल सिंटैक्स और प्रतीकों # सिंटैक्स नियमों | दाएं से बाएं से पढ़ा या समझा जाता है।

प्रारंभिक एपीएल कार्यान्वयन (c. 1970 या तो) में कोई प्रोग्रामिंग लूप-बहाव को काबू करें स्ट्रक्चर नहीं था, जैसे  या   लूप्स, और   निर्माण। इसके बजाय, उन्होंने सरणी संचालन का उपयोग किया, और संरचित प्रोग्रामिंग निर्माणों का उपयोग अक्सर आवश्यक नहीं था, क्योंकि एक बयान में एक पूर्ण सरणी पर एक ऑपरेशन किया जा सकता था। उदाहरण के लिए, द   समारोह  फॉर-लूप पुनरावृति को प्रतिस्थापित कर सकता है: ιN जब एक अदिश धनात्मक पूर्णांक पर लागू किया जाता है तो एक आयामी सरणी (वेक्टर), 1 2 3 ... देता है। कार्यक्रम नियंत्रण प्रवाह स्पष्ट रूप से और सफाई से अलग किया जा सकता है।

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

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

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

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

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

एपीएल साहित्य में प्रयुक्त कुछ शब्दों के अर्थ गणित और कंप्यूटर विज्ञान की सामान्यता दोनों से भिन्न हैं।

सिंटेक्स
एपीएल में कार्यों, ऑपरेटरों और वाक्य-विन्यास का स्पष्ट प्रतिनिधित्व है, इस प्रकार भाषा में विस्तारित सुविधाओं के स्पष्ट और स्पष्ट बयान के लिए एक आधार प्रदान करता है, और उन पर प्रयोग करने के लिए उपकरण।

हैलो, दुनिया
यह हैलो, दुनिया प्रदर्शित करता है:

<वाक्यविन्यास प्रकाश लैंग = एपीएल> 'नमस्ते दुनिया' एपीएल में एक डिज़ाइन थीम कुछ मामलों में डिफ़ॉल्ट क्रियाओं को परिभाषित करना है जो अधिकांश अन्य प्रोग्रामिंग भाषाओं में सिंटैक्स त्रुटियों का उत्पादन करेगी।

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

घातांक
इस विषय का एक अन्य उदाहरण यह है कि APL में घातांक को इस प्रकार लिखा जाता है 2*3, जो 2 की घात 3 को बढ़ाने का संकेत देता है (इसे इस प्रकार लिखा जाएगा 2^3 कुछ अन्य भाषाओं में और 2**3 फोरट्रान और पायथन में)। अनेक भाषाओं का प्रयोग करते हैं * गुणन को दर्शाने के लिए, जैसा कि 2*3, लेकिन एपीएल उपयोग करना चुनता है 2×3. हालाँकि, यदि कोई आधार निर्दिष्ट नहीं है (जैसा कि कथन के साथ है *3 एपीएल में, या ^3 अन्य भाषाओं में), अधिकांश प्रोग्रामिंग भाषाओं में इसे सिंटैक्स त्रुटि के रूप में देखा जाएगा। एपीएल, हालांकि, लापता आधार को प्राकृतिक लघुगणक स्थिर ई (गणितीय स्थिरांक) मानता है, और व्याख्या करता है *3 जैसा 2.71828*3.

सरल आँकड़े
मान लो कि X संख्याओं का एक समूह है। फिर (+/X)÷⍴X उसका औसत देता है। दाएँ-से-बाएँ पढ़ना, ⍴X एक्स में तत्वों की संख्या देता है, और चूंकि ÷ एक डाइडिक संकारक है, इसके बाएँ ओर का पद भी आवश्यक है। यह कोष्ठकों से घिरा हुआ है क्योंकि अन्यथा X लिया जाएगा (ताकि योग का होगा X÷⍴X- एक्स का प्रत्येक तत्व एक्स में तत्वों की संख्या से विभाजित), और +/X एक्स के तत्वों का योग देता है। इस पर निर्माण, निम्नलिखित अभिव्यक्ति मानक विचलन की गणना करती है: स्वाभाविक रूप से, हर बार इसे फिर से लिखने के बजाय बार-बार उपयोग के लिए इस अभिव्यक्ति को एक फ़ंक्शन के रूप में परिभाषित किया जाएगा। इसके अलावा, चूंकि असाइनमेंट एक ऑपरेटर है, यह एक अभिव्यक्ति के भीतर प्रकट हो सकता है, इसलिए निम्नलिखित टी, एवी और एसडी में उपयुक्त मान रखेंगे:

6 लॉटरी नंबर चुनें
यह तत्काल-मोड अभिव्यक्ति पिक 6 लॉटरी नंबरों का एक विशिष्ट सेट उत्पन्न करती है: 1 से 40 तक के छह छद्म-यादृच्छिक पूर्णांक, गैर-दोहराव की गारंटी, और उन्हें आरोही क्रम में क्रमबद्ध प्रदर्शित करता है:

<वाक्यविन्यास प्रकाश लैंग = एपीएल> एक्स[⍋x←6?40] 

उपरोक्त बहुत कुछ करता है, संक्षेप में, हालांकि यह एक नए विकिपीडिया के लिए जटिल प्रतीत हो सकता है: एपीएलर। यह निम्नलिखित एपीएल कार्यों को जोड़ती है (जिन्हें आदिम भी कहा जाता है और ग्लिफ़ ):
 * सबसे पहले क्रियान्वित किया जाने वाला (एपीएल दायें से बायें तरफ से क्रियान्वित होता है) डायाडिक फंक्शन है  (नामित   जब डायाडिक) जो एक सरणी डेटा संरचना देता है जिसमें 1 से निर्दिष्ट अधिकतम (सही तर्क: इस मामले में 40) तक यादृच्छिक पूर्णांकों की एक चुनिंदा संख्या (बाएं तर्क: 6 इस मामले में) शामिल है, जो कि, यदि अधिकतम ≥ वेक्टर कहा जाता है लंबाई, गैर-दोहराव होने की गारंटी है; इस प्रकार, 1 से 40 तक के 6 यादृच्छिक पूर्णांक उत्पन्न/बनाएँ।
 * यह वेक्टर तब सौंपा गया है चर के लिए , क्योंकि बाद में इसकी जरूरत है।
 * इस सदिश को तब एक मठवासी द्वारा आरोही क्रम में क्रमबद्ध किया जाता है  फ़ंक्शन, जिसके पास इसके सही तर्क के रूप में अगले असंतुलित क्लोज-ब्रैकेट या क्लोज-कोष्ठक तक इसके अधिकार के लिए सब कुछ है। का परिणाम   वह सूचकांक है जो अपने तर्क को आरोही क्रम में रखेगा।
 * फिर का उत्पादन  चर को अनुक्रमित करने के लिए उपयोग किया जाता है , जिसे हमने पहले इस उद्देश्य के लिए सहेजा था, जिससे इसके मदों को आरोही क्रम में चुना जा सके।

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

एक मठवासी समकक्ष भी कहा जाता है, जो केवल 1 और इसके एकमात्र ऑपरेंड [इसके दाईं ओर] के बीच एक यादृच्छिक पूर्णांक लौटाता है। इस प्रकार, एक रोल-प्लेइंग गेम प्रोग्राम अभिव्यक्ति का उपयोग कर सकता है   बीस तरफा पासा फेंकने के लिए।

अभाज्य संख्या
निम्न व्यंजक 1 से R तक सभी अभाज्य संख्याएँ ढूँढ़ता है। समय और स्थान दोनों में, गणना जटिलता है $$O(R^2)\,\!$$ (बिग ओ नोटेशन में)।

<वाक्यविन्यास प्रकाश लैंग = एपीएल> (~R∊R∘.×R)/R←1↓⍳R 

दाएँ से बाएँ निष्पादित, इसका अर्थ है:
 * आयोटा  एक वेक्टर बनाता है जिसमें से पूर्णांक होते हैं   प्रति   (यदि   कार्यक्रम के प्रारंभ में,   है  )
 * इस सदिश का पहला तत्व छोड़ें ( समारोह), यानी,  . इसलिए   है
 * समूह  नए वेक्टर के लिए (, असाइनमेंट आदिम), यानी,
 * ई> प्रतिकृति ऑपरेटर डायाडिक (बाइनरी) है और दुभाषिया पहले इसके बाएं तर्क का मूल्यांकन करता है (पूरी तरह से कोष्ठक में):
 * का बाहरी उत्पाद उत्पन्न करें  से गुणा , यानी, एक मैट्रिक्स जो R बटा R की गुणन सारणी है (  ऑपरेटर), यानी,

(ध्यान दें, यह मानता है कि एपीएल मूल 1 है, यानी सूचकांक 1 से शुरू होता है। एपीएल को मूल के रूप में 0 का उपयोग करने के लिए सेट किया जा सकता है, ताकि  है , जो कुछ गणनाओं के लिए सुविधाजनक है।)
 * एक वेक्टर का निर्माण उसी लंबाई के रूप में करें  साथ   प्रत्येक स्थान पर जहां इसी संख्या में   बाहरी उत्पाद मैट्रिक्स में है (, सेट समावेशन या तत्व या एप्सिलॉन ऑपरेटर), यानी,
 * तार्किक रूप से वेक्टर में मूल्यों को नकारें (नहीं) (शून्य को इकाइयों में और इकाइयों को शून्य में बदलें) (, तार्किक नहीं या टिल्ड ऑपरेटर), यानी,
 * आइटम का चयन करें  जिसके लिए संबंधित तत्व है   (  प्रतिकृति ऑपरेटर), यानी,

छँटाई
निम्नलिखित अभिव्यक्ति शब्द की लंबाई के अनुसार मैट्रिक्स एक्स में संग्रहीत शब्द सूची को क्रमबद्ध करती है:

<वाक्यविन्यास प्रकाश लैंग = एपीएल> एक्स[⍋X+.≠' ';] 

जीवन का खेल
Dyalog APL में लिखा गया निम्नलिखित फंक्शन लाइफ, एक बूलियन मैट्रिक्स लेता है और कॉनवे के गेम ऑफ लाइफ के अनुसार नई पीढ़ी की गणना करता है। यह बहुत कम कोड में एक जटिल एल्गोरिथ्म को लागू करने के लिए एपीएल की शक्ति को प्रदर्शित करता है, लेकिन इसे समझने के लिए एपीएल के कुछ उन्नत ज्ञान की आवश्यकता होती है (जैसा कि कई भाषाओं में एक ही कार्यक्रम होगा)।

<वाक्यविन्यास प्रकाश लैंग = एपीएल> जीवन ← {⊃1 ⍵ ∨.∧ 3 4 = +/ +⌿ ¯1 0 1 ∘.⊖ ¯1 0 1 ⌽¨ ⊂⍵} 

एचटीएमएल टैग हटाना
निम्नलिखित उदाहरण में, Dyalog में भी, पहली पंक्ति एक चर के लिए कुछ HTML कोड प्रदान करती है  और फिर सभी HTML टैग्स को हटाने के लिए APL एक्सप्रेशन का उपयोग करता है (स्पष्टीकरण):

<वाक्यविन्यास प्रकाश लैंग = एपीएल> txt←' यह जोर दिया गया पाठ है।  ' {⍵ /⍨ ~{⍵∨≠\⍵}⍵∊'<>'} txt यह बल दिया गया पाठ है। 

नामकरण
एपीएल का नाम आइवरसन की पुस्तक ए प्रोग्रामिंग लैंग्वेज के शुरुआती अक्षर से लिया गया है, भले ही पुस्तक इस लेख में वर्णित कार्यान्वित प्रोग्रामिंग भाषा के बजाय #Mathematical_notation|Iverson's गणितीय संकेतन का वर्णन करती है। नाम का उपयोग केवल वास्तविक कार्यान्वयन के लिए किया जाता है, जो #APL\360|APL\360 से शुरू होता है।

आईबीएम में एपीएल \ 360 के कार्यान्वयन के दौरान 1966 में एडिन फाल्कॉफ़ ने नाम गढ़ा:

APL को कभी-कभी ऐरे प्रोग्रामिंग लैंग्वेज या ऐरे प्रोसेसिंग लैंग्वेज के रूप में फिर से व्याख्या की जाती है, जिससे APL एक संक्षिप्त नाम बन जाता है।



लोगो
एपीएल विक्रेताओं के बीच हमेशा सहयोग रहा है, और संयुक्त सम्मेलन 1969 से 2010 तक नियमित रूप से आयोजित किए गए थे। इस तरह के सम्मेलनों में, एपीएल मर्केंडाइजिंग को अक्सर सौंप दिया जाता था, जिसमें एपीएल रूपांकनों या विक्रेता लोगो का संग्रह होता था। आम सेब थे (सेब और एपीएल के उच्चारण में समानता पर एक वाक्य के रूप में) और कोड स्निपेट ⍺*⎕ जो APL सिंटैक्स और प्रतीकों # APL2 कीबोर्ड फ़ंक्शन द्वारा निर्मित प्रतीक हैं जो APL संशोधक कुंजी को पकड़कर और APL टाइप करते समय मैपिंग लेआउट का प्रतीक हैं।

इन सभी सामुदायिक प्रयासों के बावजूद, प्रोग्रामिंग भाषा के लिए कोई सार्वभौमिक विक्रेता-अज्ञेयवादी लोगो नहीं उभरा। लोकप्रिय प्रोग्रामिंग भाषाओं के रूप में पहचानने योग्य लोगो की स्थापना तेजी से हो रही है, फोरट्रान को 2020 में एक मिल रहा है, ब्रिटिश एपीएल एसोसिएशन ने एपीएल के लिए इस तरह का लोगो स्थापित करने के लिए 2021 की दूसरी छमाही में एक अभियान शुरू किया, और एक सामुदायिक चुनाव और कई दौर की प्रतिक्रिया के बाद, मई 2022 में एक लोगो चुना गया।

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

एपीएल360
पहचानने योग्य एपीएल प्रतीकों का उपयोग करते हुए एपीएल का पहला कार्यान्वयन एपीएल\360 था जो आईबीएम सिस्टम/360 पर चलता था, और नवंबर 1966 में पूरा हुआ था। हालांकि उस समय केवल आईबीएम के भीतर ही उपयोग में रहा। 1973 में इसके कार्यान्वयनकर्ताओं, लॉरेंस एम. ब्रीड, रिचर्ड एच. लैथवेल और रोजर मूर (कंप्यूटर वैज्ञानिक) को एसोसिएशन फॉर कंप्यूटिंग मशीनरी (ACM) की ओर से ग्रेस मरे हूपर पुरस्कार से सम्मानित किया गया। यह एपीएल \ 360 के डिजाइन और कार्यान्वयन में उनके काम के लिए दिया गया था, इंटरैक्टिव सिस्टम के लिए सादगी, दक्षता, विश्वसनीयता और प्रतिक्रिया समय में नए मानक स्थापित करना। 1975 में, IBM 5100 माइक्रो कंप्यूटर ने APL\360 पेश किया कंप्यूटर के लिए दो बिल्ट-इन ROM-आधारित व्याख्या की गई भाषाओं में से एक के रूप में, एक कीबोर्ड और डिस्प्ले के साथ पूर्ण है जो भाषा में उपयोग किए जाने वाले सभी विशेष प्रतीकों का समर्थन करता है। APL\360 के महत्वपूर्ण विकासों में CMS/APL शामिल है, जिसने कन्वर्सेशनल मॉनिटर सिस्टम और APLSV की वर्चुअल मेमोरी क्षमताओं का उपयोग किया, जिसने साझा चर, सिस्टम चर और सिस्टम फ़ंक्शंस पेश किए। बाद में इसे आईबीएम सिस्टम/370 और वर्चुअल स्टोरेज पर्सनल कंप्यूटिंग प्लेटफॉर्म पर 1983 में इसके अंतिम रिलीज तक पोर्ट किया गया, जिसके बाद इसे एपीएल2 से बदल दिया गया।

एपीएल\1130
1968 में, APL\1130 पहला सार्वजनिक रूप से उपलब्ध APL सिस्टम बन गया, IBM द्वारा IBM 1130 के लिए बनाया गया। यह IBM द्वारा जारी किया गया सबसे लोकप्रिय IBM टाइप-III लाइब्रेरी सॉफ्टवेयर बन गया।

एपीएल*प्लस और शार्प एपीएल
APL*Plus और Sharp APL, APL\360 के संस्करण हैं, जिसमें व्यवसाय-उन्मुख एक्सटेंशन जैसे कि डेटा स्वरूपण और बाहरी फ़ाइलों में APL सरणियों को संग्रहीत करने की सुविधा शामिल है। वे मूल IBM APL\360 विकास दल के विभिन्न सदस्यों को नियोजित करते हुए दो कंपनियों द्वारा संयुक्त रूप से विकसित किए गए थे। दो कंपनियाँ थीं I. P. Sharp Associates (IPSA), एक APL\360 सेवा कंपनी जिसका गठन 1964 में इयान शार्प, रोजर मूर और अन्य लोगों द्वारा किया गया था, और साइंटिफिक टाइम शेयरिंग कॉर्पोरेशन, एक टाइम-शेयरिंग और परामर्श सेवा कंपनी, जिसका गठन 1969 में लॉरेंस ब्रीड और अन्य द्वारा किया गया था। अन्य। दोनों ने मिलकर APL*Plus विकसित किया और उसके बाद एक साथ काम करना जारी रखा लेकिन APL*Plus और Sharp APL के रूप में APL को अलग-अलग विकसित किया। STSC ने APL*Plus को VAX 11 के लिए बनाए जा रहे संस्करणों के साथ कई प्लेटफ़ॉर्म पर पोर्ट किया, पीसी और यूनिक्स, जबकि आईपीएसए ने पर्सनल कंप्यूटर के आगमन के लिए एक अलग दृष्टिकोण लिया और अतिरिक्त पीसी-आधारित आईबीएम-संगत मेनफ्रेम | पीसी-एक्सटी/360 हार्डवेयर का उपयोग करके शार्प एपीएल को इस प्लेटफॉर्म पर उपलब्ध कराया। 1993 में, सॉलिटॉन इनकॉर्पोरेटेड का गठन तीव्र एपीएल का समर्थन करने के लिए किया गया था और इसने तीव्र एपीएल को एसएएक्स (यूनिक्स के लिए तीव्र एपीएल) में विकसित किया।, एपीएल*प्लस एपीएल2000 एपीएल+विन के रूप में जारी है।

1985 में, एसटीएससी के इयान शार्प और डेन डायर को संयुक्त रूप से एपीएल में उत्कृष्ट योगदान के लिए आइवरसन पुरस्कार | केनेथ ई. इवरसन पुरस्कार मिला।

एपीएल2
APL2, IBM द्वारा APL का एक महत्वपूर्ण पुन: कार्यान्वयन था जिसे 1971 से विकसित किया गया था और पहली बार 1984 में जारी किया गया था। यह भाषा में कई जोड़ प्रदान करता है, जिनमें से सबसे उल्लेखनीय नेस्टेड (गैर-आयताकार) सरणी समर्थन है। संपूर्ण APL2 उत्पाद और सेवा दल को 2007 में आइवरसन पुरस्कार से सम्मानित किया गया था।

2021 में, IBM ने APL2 को लॉग-ऑन सॉफ़्टवेयर को बेच दिया, जो लॉग-ऑन APL2 के रूप में उत्पाद को विकसित और बेचते हैं।

एपीएलजीओएल
1972 में, एपीएलजीओएल को एपीएल के एक प्रायोगिक संस्करण के रूप में जारी किया गया था, जिसने संरचित प्रोग्रामिंग भाषा को भाषा ढांचे में जोड़ा। इंटरस्टेटमेंट कंट्रोल, कंडीशनल स्टेटमेंट एक्जीक्यूशन और स्टेटमेंट स्ट्रक्चरिंग के साथ-साथ एल्गोरिथम के इरादे को स्पष्ट करने के लिए स्टेटमेंट जोड़े गए। इसे 1977 में Hewlett-Packard के लिए लागू किया गया था।

डायलॉग एपीएल
डायलॉग एपीएल को सबसे पहले यूनाइटेड किंगडम की कंपनी डायलॉग लिमिटेड द्वारा जारी किया गया था। 1983 में तथा,, IBM AIX, Linux (रास्पबेरी पाई सहित), macOS और Microsoft Windows प्लेटफ़ॉर्म के लिए उपलब्ध है। यह ऑब्जेक्ट उन्मुख प्रोग्रामिंग का समर्थन करने के लिए एक्सटेंशन के साथ एपीएल 2 पर आधारित है, कार्यात्मक प्रोग्रामिंग, और मौन प्रोग्रामिंग। लाइसेंस व्यक्तिगत/गैर-व्यावसायिक उपयोग के लिए निःशुल्क हैं। 1995 में, दो विकास दल - जॉन एम. स्कोल्स (कंप्यूटर वैज्ञानिक) और पीटर डोनेली - को दुभाषिया पर उनके काम के लिए आइवरसन पुरस्कार से सम्मानित किया गया। Gitte Christensen और Morten Kromberg 2016 में Iverson अवार्ड के संयुक्त प्राप्तकर्ता थे।

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

एपीएलएक्स
APLX, APL2 पर आधारित और कई एक्सटेंशन के साथ, APL की एक पार मंच प्रोग्रामिंग भाषा बोली है, जिसे पहली बार 2002 में यूनाइटेड किंगडम की कंपनी MicroAPL द्वारा जारी किया गया था।.

जीएनयू एपीएल
GNU APL, ISO/IEC 13751:2001 में निर्दिष्ट विस्तारित APL का निःशुल्क कार्यान्वयन है और इस प्रकार APL2 का कार्यान्वयन है। यह लिनक्स पर चलता है (रास्पबेरी पीआई सहित), मैकोज़, कई बीएसडी बोलियां, और विंडोज़ पर (या तो अपने सभी सिस्टम कार्यों के पूर्ण समर्थन के लिए cygwin का उपयोग कर रहा है या मूल 64-बिट विंडोज बाइनरी के रूप में इसके कुछ सिस्टम फ़ंक्शन गायब हैं). GNU APL आंतरिक रूप से यूनिकोड का उपयोग करता है और इसे स्क्रिप्ट किया जा सकता है। इसे जुरगेन सॉरमैन ने लिखा था। जीएनयू परियोजना के संस्थापक रिचर्ड स्टॉलमैन, APL के शुरुआती अंगीकार थे, जिन्होंने 1969 की गर्मियों में एक हाई स्कूल के छात्र के रूप में टेक्स्ट एडिटर लिखने के लिए इसका इस्तेमाल किया।

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

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

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

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

मानक
APL को अमेरिकी राष्ट्रीय मानक संस्थान (ANSI) कार्य समूह X3J10 और मानकीकरण के लिए अंतर्राष्ट्रीय संगठन (ISO) और अंतर्राष्ट्रीय इलेक्ट्रोटेक्निकल कमीशन (IEC), ISO/IEC संयुक्त तकनीकी समिति 1 उपसमिति 22 कार्य समूह 3 द्वारा मानकीकृत किया गया है। मूल APL भाषा है ISO 8485:1989 में निर्दिष्ट है, और विस्तारित APL भाषा ISO/IEC 13751:2001 में निर्दिष्ट है।

अग्रिम पठन

 * An APL Machine (1970 Stanford doctoral dissertation by Philip Abrams)
 * A Personal History Of APL (1982 article by Michael S. Montalbano)
 * A Programming Language by Kenneth E. Iverson
 * APL in Exposition by Kenneth E. Iverson
 * Brooks, Frederick P.; Kenneth Iverson (1965). Automatic Data Processing, System/360 Edition. ISBN 0-471-10605-4.
 * 
 * Brooks, Frederick P.; Kenneth Iverson (1965). Automatic Data Processing, System/360 Edition. ISBN 0-471-10605-4.
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 

वीडियो

 * - एपीएल के मूल विकासकर्ताओं के साथ 1974 का टॉक शो स्टाइल साक्षात्कार।
 * - रॉबर्ट स्पेंस (इंजीनियर), इंपीरियल कॉलेज लंदन द्वारा 1975 में एपीएल का लाइव प्रदर्शन।
 * - डायलॉग लिमिटेड के जॉन स्कोल्स द्वारा 2009 का एक ट्यूटोरियल जो एपीएल की एकल पंक्ति में कॉनवे के गेम ऑफ लाइफ को लागू करता है।
 * - ग्रीम रॉबर्टसन द्वारा 2009 में एपीएल का परिचय।

ऑनलाइन संसाधन

 * , एक ऑनलाइन एपीएल प्राइमर
 * APL2C, एपीएल संकलक के लिंक का एक स्रोत
 * APL2C, एपीएल संकलक के लिंक का एक स्रोत

श्रेणी: .NET प्रोग्रामिंग लैंग्वेज श्रेणी:एपीएल प्रोग्रामिंग भाषा परिवार श्रेणी:ऐरे प्रोग्रामिंग भाषाएँ श्रेणी:कमांड शैल श्रेणी:गतिशील प्रोग्रामिंग भाषाएँ श्रेणी:गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषाएँ श्रेणी:कार्यात्मक भाषाएँ श्रेणी:आईबीएम सॉफ्टवेयर श्रेणी:1964 में बनाई गई प्रोग्रामिंग भाषाएँ श्रेणी:एक आईएसओ मानक के साथ प्रोग्रामिंग भाषाएँ श्रेणी:प्रोग्रामिंग भाषाएँ श्रेणी:होमोइकोनिक प्रोग्रामिंग लैंग्वेज