पास्कल (प्रोग्रामिंग भाषा)

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

पास्कल को ALGOL 60 भाषा की तर्ज पर विकसित किया गया था। विर्थ ALGOL X प्रयासों के हिस्से के रूप में भाषा को सुधारने की प्रक्रिया में शामिल था और उसने ALGOL W नाम का संस्करण प्रस्तावित किया। इसे स्वीकार नहीं किया गया, और ALGOL X प्रक्रिया फंस गई। 1968 में, विर्थ ने ALGOL X प्रक्रिया को छोड़ने और ALGOL W को और बेहतर बनाने का निर्णय लिया, इसे 1970 में पास्कल के रूप में जारी किया।

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

1970 के दशक में पास्कल बहुत सफल हो गया, विशेष रूप से बढ़ते मिनीकंप्यूटर बाजार में। 1970 के दशक के अंत में क्षेत्र के उभरने के साथ ही कई माइक्रो कंप्यूटरों के लिए संकलक भी उपलब्ध थे। यह व्यापक रूप से 1980 के दशक में विश्वविद्यालय स्तर के प्रोग्रामिंग पाठ्यक्रमों में शिक्षण भाषा के रूप में इस्तेमाल किया गया था, और उसी अवधि के दौरान वाणिज्यिक सॉफ्टवेयर लिखने के लिए उत्पादन सेटिंग्स में भी इस्तेमाल किया गया था। 1980 के दशक के अंत और 1990 के दशक की शुरुआत में इसे C (प्रोग्रामिंग लैंग्वेज) द्वारा विस्थापित कर दिया गया क्योंकि UNIX- आधारित सिस्टम लोकप्रिय हो गए, और विशेष रूप से C ++ की रिलीज़ के साथ।

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के लिए डिज़ाइन किए गए ऑब्जेक्ट पास्कल नाम का व्युत्पन्न 1985 में विकसित किया गया था। इसका उपयोग 1980 के दशक के अंत में Apple कंप्यूटर (लिसा और मैकिन्टोश मशीनों के लिए) और बोरलैंड द्वारा किया गया था और बाद में Microsoft विंडोज प्लेटफॉर्म पर डेल्फी (सॉफ्टवेयर) में विकसित किया गया था। पास्कल अवधारणाओं के विस्तार ने मॉडुला -2 और ओबेरॉन (प्रोग्रामिंग भाषा) भाषाओं का नेतृत्व किया।

पहले के प्रयास
1960 के दशक के दौरान कंप्यूटर भाषा डिजाइन के अधिकांश इतिहास को ALGOL 60 भाषा में खोजा जा सकता है। ALGOL को 1950 के दशक के दौरान स्पष्ट रूप से एल्गोरिदम का वर्णन करने में सक्षम होने के स्पष्ट लक्ष्य के साथ विकसित किया गया था। इसमें संरचित प्रोग्रामिंग के लिए कई विशेषताएं शामिल थीं जो आज तक भाषाओं में सामान्य हैं।

इसकी शुरुआत के कुछ ही समय बाद, 1962 में विर्थ ने यूलर (प्रोग्रामिंग भाषा) पर हेल्मुट वेबर के साथ अपने शोध प्रबंध पर काम करना शुरू किया। यूलर ALGOL के सिंटैक्स और कई अवधारणाओं पर आधारित था लेकिन व्युत्पन्न नहीं था। इसका प्राथमिक लक्ष्य गतिशील सूचियों और प्रकारों को जोड़ना था, जिससे इसे लिस्प (प्रोग्रामिंग भाषा) जैसी भूमिकाओं में इस्तेमाल किया जा सके। भाषा 1965 में प्रकाशित हुई थी।

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

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

पास्कल
पास्कल ALGOL W प्रयासों से प्रभावित था, संरचित प्रोग्रामिंग में प्रोग्रामिंग सिखाने और सिस्टम सॉफ्टवेयर के विकास के स्पष्ट लक्ष्यों के साथ। छात्रों की पीढ़ी ने स्नातक पाठ्यक्रमों में पास्कल को परिचयात्मक भाषा के रूप में इस्तेमाल किया।

भाषा के लिए शुरुआती सफलताओं में से यूसीएसडी पास्कल का परिचय था, ऐसा संस्करण जो कस्टम ऑपरेटिंग सिस्टम पर चलता था जिसे विभिन्न प्लेटफार्मों पर पोर्ट किया जा सकता था। प्रमुख मंच Apple II था, जहाँ इसने Apple पास्कल के रूप में व्यापक उपयोग देखा। इसके कारण पास्कल प्राथमिक उच्च-स्तरीय भाषा बन गया जिसका उपयोग Apple लिसा और बाद में Macintosh में विकास के लिए किया गया। पास्कल स्रोत कोड से मूल क्लासिक मैक ओएस के कुछ हिस्सों को मोटोरोला 68000 असेंबली भाषा में हाथ से अनुवादित किया गया था। डोनाल्ड ई. नुथ द्वारा टाइपसेटिंग सिस्टम TeX डिजिटल उपकरण निगम PDP-10 पास्कल पर आधारित मूल साक्षर प्रोग्रामिंग सिस्टम WEB में लिखा गया था। एडोब फोटोशॉप जैसे सफल व्यावसायिक अनुप्रयोग मैकिंटोश प्रोग्रामर के वर्कशॉप पास्कल में लिखे गए थे, जबकि टोटल कमांडर, स्काइप जैसे एप्लिकेशन और मैक्रोमीडिया कैप्टिवेट को डेल्फी (ऑब्जेक्ट पास्कल) में लिखा गया था। अपोलो कंप्यूटर ने पास्कल को 1980 में शुरू होने वाले अपने ऑपरेटिंग सिस्टम के लिए सिस्टम प्रोग्रामिंग भाषा के रूप में इस्तेमाल किया।

पास्कल के वेरिएंट का उपयोग अनुसंधान परियोजनाओं से लेकर पीसी गेम और अंतः स्थापित प्रणाली तक सब कुछ के लिए किया गया है। नए पास्कल कंपाइलर मौजूद हैं जिनका व्यापक रूप से उपयोग किया जाता है।

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

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

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

सीडीसी पास्कल कंपाइलर का दूसरे मेनफ्रेम में पहला सफल बंदरगाह 1972 में क्वीन यूनिवर्सिटी ऑफ बेलफास्ट (क्यूयूबी) में वेल्श और क्विन द्वारा पूरा किया गया था। लक्ष्य इंटरनेशनल कंप्यूटर लिमिटेड (आईसीएल) आईसीटी 1900 श्रृंखला थी। यह संकलक, बदले में, सूचना कंप्यूटर सिस्टम्स (ICS) मल्टीम मिनीकंप्यूटर के लिए पास्कल संकलक का जनक था। मल्टीम पोर्ट विकसित किया गया था - पास्कल को सिस्टम प्रोग्रामिंग भाषा के रूप में उपयोग करने की दृष्टि से - ग्लासगो विश्वविद्यालय में कंप्यूटिंग साइंस विभाग में काम कर रहे फाइंडले, कपल्स, कैवोरास और डेविस द्वारा। ऐसा माना जाता है कि मल्टीम पास्कल, जो 1973 की गर्मियों में पूरा हुआ, पहला 16-बिट कार्यान्वयन हो सकता है।

वेल्श एट अल द्वारा पूरी तरह से नया संकलक पूरा किया गया था। 1977 में QUB में। इसने स्रोत-भाषा निदान सुविधा (प्रोफाइलिंग, ट्रेसिंग और टाइप-अवेयर स्वरूपित पोस्टमॉर्टम डंप को शामिल करना) की पेशकश की, जिसे ग्लासगो विश्वविद्यालय में फाइंडले और वाट द्वारा लागू किया गया था। इस कार्यान्वयन को 1980 में साउथेम्प्टन विश्वविद्यालय और ग्लासगो विश्वविद्यालय पर आधारित टीम द्वारा ICL 2900 श्रृंखला में पोर्ट किया गया था। मानक पास्कल मॉडल कार्यान्वयन भी इस संकलक पर आधारित था, जिसे 1984 में मैनचेस्टर विश्वविद्यालय में वेल्श और हे द्वारा अनुकूलित किया गया था, बीएसआई 6192/आईएसओ 7185 मानक के अनुरूपता के लिए कठोर जांच करने और पोर्टेबल सार मशीन के लिए कोड उत्पन्न करने के लिए।

उत्तरी अमेरिका में लिखे गए पहले पास्कल कंपाइलर का निर्माण डोनाल्ड बी. गिल्लीज#लेटर करियर|पीडीपी-11 के लिए डोनाल्ड बी. गिल्लीज के तहत अर्बाना-शैंपेन में इलिनोइस विश्वविद्यालय में किया गया था और देशी मशीन कोड तैयार किया गया था।

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

पास्कल-पी4 कंपाइलर-इंटरप्रेटर को अभी भी मूल पास्कल के साथ संगत सिस्टम पर चलाया और संकलित किया जा सकता है। हालाँकि, यह केवल पास्कल भाषा के सबसेट को स्वीकार करता है।

ज़्यूरिख समूह के बाहर बनाया गया पास्कल-पी5, पूर्ण पास्कल भाषा को स्वीकार करता है और इसमें आईएसओ 7185 अनुकूलता शामिल है।

यूसीएसडी पास्कल पास्कल-पी2 से अलग हो गया, जहां केनेथ बाउल्स ने दुभाषिया (कंप्यूटिंग) यूसीएसडी पी-सिस्टम बनाने के लिए इसका इस्तेमाल किया। यह मूल आईबीएम पर्सनल कंप्यूटर के लॉन्च के समय उपलब्ध तीन ऑपरेटिंग सिस्टमों में से था। यूसीएसडी पास्कल ने बाइट वैल्यू के आधार पर इंटरमीडिएट कोड का इस्तेमाल किया, और इस प्रकार सबसे शुरुआती बाईटकोड कंपाइलर्स में से था। Apple पास्कल को 1979 में Apple 2 और Apple 3 कंप्यूटर सिस्टम के लिए जारी किया गया था। यह यूसीएसडी पास्कल का कार्यान्वयन, या काफी हद तक आधारित था। Pascal-P1 से Pascal-P4 नहीं था, बल्कि CDC 6600 60-बिट शब्द लंबाई पर आधारित था।

पास्कल-पी5 कंपाइलर पर आधारित कंपाइलर, जिसने नेटिव बाइनरी ओएस/360 ऑब्जेक्ट फाइल फॉर्मेट बनाया, आईबीएम सिस्टम/370 मेनफ्रेम कंप्यूटर के लिए ऑस्ट्रेलियाई परमाणु ऊर्जा आयोग द्वारा जारी किया गया; आयोग के नाम के संक्षिप्त नाम के बाद इसका नाम AAEC पास्कल 8000 कंपाइलर रखा गया।

ऑब्जेक्ट पास्कल और टर्बो पास्कल
Apple कंप्यूटर ने 1982 में लिसा वर्कशॉप के लिए अपना लिसा पास्कल बनाया, और 1985 में Apple Macintosh और Macintosh प्रोग्रामर वर्कशॉप में कंपाइलर को पोर्ट किया। 1985 में लैरी टेस्लर ने निकलॉस विर्थ के परामर्श से ऑब्जेक्ट पास्कल को परिभाषित किया और इन एक्सटेंशन को दोनों में शामिल किया गया। लिसा पास्कल और मैक पास्कल कंपाइलर।

1980 के दशक में, एंडर्स हेल्सबर्ग ने नैसकॉम-2 के लिए ब्लू लेबल पास्कल कंपाइलर लिखा था। आईबीएम पीसी के लिए इस कंपाइलर के पुन: कार्यान्वयन का विपणन कॉम्पास पास्कल और पॉलीपास्कल के नाम से किया गया था, इससे पहले कि इसे बोरलैंड द्वारा अधिग्रहित किया गया और टर्बो पास्कल का नाम बदल दिया गया।

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

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

टर्बो पास्कल और यूनिट या मॉड्यूल संरचनाओं के साथ अन्य डेरिवेटिव मॉड्यूलर प्रोग्रामिंग लैंग्वेज हैं। हालांकि, यह नेस्टेड मॉड्यूल अवधारणा या विशिष्ट प्रतीकों के योग्य आयात और निर्यात प्रदान नहीं करता है।

अन्य प्रकार
सुपर पास्कल वैरिएंट है जो गैर-संख्यात्मक लेबल, रिटर्न स्टेटमेंट और अभिव्यक्तियों को प्रकारों के नाम के रूप में जोड़ता है।

टीएमटी पास्कल 32-बिट डॉस संरक्षित मोड, ओएस/2 और विन32 ऑपरेटिंग सिस्टम के लिए पहला बोरलैंड-संगत कंपाइलर था। टीएमटी पास्कल लैंग्वेज पहली ऐसी भाषा थी जिसने फंक्शन और ऑपरेटर ओवरलोडिंग की अनुमति दी थी।

विस्कॉन्सिन-मैडिसन, ज़्यूरिख, कार्लज़ूए और वुपर्टल के विश्वविद्यालयों ने पास्कल-एससी विकसित किया  और पास्कल-एक्सएससी रेफरी> (वैज्ञानिक संगणना के लिए विस्तार) संकलक, संख्यात्मक संगणनाओं की प्रोग्रामिंग के उद्देश्य से। पास्कल-एससी के लिए विकास आईएसओ 7185 पास्कल स्तर 0 का समर्थन करते हुए 1978 में शुरू हुआ, लेकिन बाद के स्तर पर स्तर 2 समर्थन जोड़ा गया। पास्कल-एससी ने मूल रूप से जेड80 प्रोसेसर को लक्षित किया था, लेकिन बाद में इसे डॉस (x86) और 68000 के लिए फिर से लिखा गया। पास्कल-एक्सएससी को कई बार यूनिक्स (लिनक्स, सनओएस, एचपी-यूएक्स, एआईक्स) और माइक्रोसॉफ्ट/में पोर्ट किया गया है। IBM (DOS with EMX (प्रोग्रामिंग वातावरण), OS/2, Windows) ऑपरेटिंग सिस्टम। यह इंटरमीडिएट सी स्रोत कोड उत्पन्न करके संचालित होता है जिसे बाद में मूल निष्पादन योग्य में संकलित किया जाता है। पास्कल-एससी भाषा के कुछ एक्सटेंशन जीएनयू पास्कल द्वारा अपनाए गए हैं।

पास्कल सोल को 1983 के आसपास एक फ्रांसीसी टीम द्वारा सोल नामक यूनिक्स जैसी प्रणाली को लागू करने के लिए डिजाइन किया गया था। यह मानक पास्कल स्तर -1 (पैरामीटरयुक्त सरणी सीमा के साथ) था, लेकिन परिभाषा ने फ्रेंच में वैकल्पिक खोजशब्दों और पूर्वनिर्धारित पहचानकर्ताओं की अनुमति दी और सिस्टम प्रोग्रामिंग को आसान बनाने के लिए भाषा में कुछ एक्सटेंशन शामिल थे (उदाहरण के लिए lseek के बराबर)। संदर्भ>माइकल गिएन, द एसओएल ऑपरेटिंग सिस्टम, यूसेनिक्स समर '83 सम्मेलन, टोरंटो, ओएन, (जुलाई 1983), पीपी. 75-78 बाद में सोल टीम एक वितरित ऑपरेटिंग डिजाइन करने के लिए कोरसोस परियोजना में चली गई। प्रणाली। संदर्भ>cs.berkeley.edu 

आईपी ​​पास्कल माइक्रोपोलिस (कंपनी) डॉस का उपयोग करते हुए पास्कल प्रोग्रामिंग भाषा का कार्यान्वयन था, लेकिन Z80 पर चल रहे सीपी/एम-80 में तेजी से स्थानांतरित किया गया था। 1994 में इसे 80386 मशीन प्रकारों में स्थानांतरित कर दिया गया था, और आज यह विंडोज़/एक्सपी और लिनक्स कार्यान्वयन के रूप में मौजूद है। 2008 में, सिस्टम को एक नए स्तर पर लाया गया और परिणामी भाषा को पास्कलिन (पास्कल के कैलकुलेटर के बाद) कहा गया। इसमें ऑब्जेक्ट्स, नेमस्पेस कंट्रोल, गतिशील सरणी और कई अन्य एक्सटेंशन शामिल हैं, और आम तौर पर सी शार्प (प्रोग्रामिंग लैंग्वेज) | सी # के समान कार्यक्षमता और टाइप सुरक्षा की सुविधा है। यह एकमात्र ऐसा कार्यान्वयन है जो मूल पास्कल कार्यान्वयन के साथ भी संगत है, जिसे आईएसओ 7185 के रूप में मानकीकृत किया गया है।

भाषा निर्माण
पास्कल, अपने मूल रूप में, एक विशुद्ध रूप से प्रक्रियात्मक भाषा है और इसमें ALGOL जैसी नियंत्रण संरचनाओं की पारंपरिक सरणी शामिल है जैसे कि आरक्षित शब्द,  ,  ,  ,  , और  , एक बयान या एक पर लेकर  -  बयान ब्लॉक। पास्कल में डेटा स्ट्रक्चरिंग कंस्ट्रक्शन भी हैं जो मूल ALGOL 60 टाइप सिस्टम में शामिल नहीं हैं, जैसे रिकॉर्ड (कंप्यूटर साइंस), वेरिएंट, पॉइंटर (कंप्यूटर प्रोग्रामिंग), प्रगणित प्रकार और सेट (कंप्यूटर साइंस) और प्रोसीजर पॉइंटर्स। इस तरह के निर्माण सिमुला 67, ALGOL 68, निकलॉस विर्थ के अपने ALGOL W और C. A. R. होरे के सुझावों से आंशिक रूप से विरासत में मिले या प्रेरित थे।

पास्कल प्रोग्राम के साथ शुरू होते हैं  कीवर्ड (कंप्यूटर प्रोग्रामिंग) मापदंडों के रूप में बाहरी फाइल डिस्क्रिप्टर की सूची के साथ पास्कल आईएसओ 7185:1990  6.10 (टर्बो पास्कल आदि में आवश्यक नहीं); इसके बाद मुख्य ब्लॉक (प्रोग्रामिंग) को ब्रैकेट में रखा जाता है   और   खोजशब्द। अर्धविराम अलग वक्तव्य (प्रोग्रामिंग), और पूर्ण विराम (यानी, अवधि) पूरे कार्यक्रम (या इकाई) को समाप्त करता है। पास्कल स्रोत में पत्र का मामला को नजरअंदाज किया जाता है।

यहाँ बहुत ही सरल हैलो, वर्ल्ड के लिए उपयोग किए जाने वाले स्रोत कोड का उदाहरण है! कार्यक्रम:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

प्रोग्राम हैलोवर्ल्ड (आउटपुट); शुरू लिखें ('हैलो, वर्ल्ड!') {नहीं ; ब्लॉक के अंतिम विवरण के बाद आवश्यक है - जोड़ने से कार्यक्रम में अशक्त कथन जुड़ जाता है, जिसे संकलक द्वारा अनदेखा कर दिया जाता है।} अंत। 

डेटा प्रकार
पास्कल में प्रकार की घोषणा का उपयोग उन मानों की श्रेणी को परिभाषित करने के लिए किया जाता है जो उस प्रकार का चर भंडारण करने में सक्षम है। यह संचालन के सेट को भी परिभाषित करता है जो कि उस प्रकार के चर पर किए जाने की अनुमति है। पूर्वनिर्धारित प्रकार हैं:

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

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


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

प्रकार बाइट = 0..255; हस्ताक्षरित_बाइट = -128..127; स्ट्रिंग = पैक्ड सरणी [1..255] चार; 

बाइट और स्ट्रिंग जैसे अक्सर उपयोग किए जाने वाले प्रकार पहले से ही कई कार्यान्वयनों में परिभाषित किए गए हैं।

आम तौर पर सिस्टम डेटा को स्टोर करने के लिए वर्ड (कंप्यूटर आर्किटेक्चर) का उपयोग करेगा। उदाहरण के लिए, byte प्रकार को मशीन पूर्णांक में संग्रहीत किया जा सकता है - 32 बिट्स शायद - 8-बिट मान के बजाय। पास्कल में भाषा तत्व नहीं होते हैं जो बुनियादी भंडारण प्रकारों को अधिक विस्तृत रूप से परिभाषित करने की अनुमति देते हैं। यह क्षमता कई पास्कल एक्सटेंशन और फॉलो-ऑन भाषाओं में शामिल थी, जबकि अन्य, जैसे मोडुला -2, ने 16-बिट पूर्णांक जैसे अधिकांश मशीन डेटा प्रकारों को कवर करने के लिए बिल्ट-इन सेट का विस्तार किया। packed }} कीवर्ड प्रत्येक तत्व के लिए शब्द (कंप्यूटर आर्किटेक्चर) का उपयोग करने के बजाय संरचित डेटा प्रकारों के भंडारण की सबसे कुशल विधि का उपयोग करने के लिए संकलक को बताता है: सेट, सरणियाँ और रिकॉर्ड। पैकिंग उन मशीनों तक पहुँच को धीमा कर सकती है जो किसी शब्द के भागों तक आसान पहुँच प्रदान नहीं करती हैं।

सबरेंज प्रकार
किसी भी क्रमिक डेटा प्रकार (वास्तविक को छोड़कर कोई भी सरल प्रकार) की उपश्रेणियाँ भी बनाई जा सकती हैं:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

वर एक्स : 1..10; वाई : 'ए'..'जेड'; 

सेट प्रकार
अपने समय की अन्य प्रोग्रामिंग भाषाओं के विपरीत, पास्कल सेट प्रकार का समर्थन करता है:
 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

वर सेट 1: 1..10 का सेट; सेट 2: 'ए'..'जेड' का सेट; 

सेट आधुनिक गणित के लिए मौलिक अवधारणा है, और उनका उपयोग कई एल्गोरिदम में किया जा सकता है। ऐसी सुविधा उपयोगी है और किसी ऐसी भाषा में समतुल्य निर्माण से तेज हो सकती है जो सेट का समर्थन नहीं करती है। उदाहरण के लिए, कई पास्कल कंपाइलर्स के लिए:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

अगर मैं [5..10] में हूं तो ... 

की तुलना में तेजी से निष्पादित करता है:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

अगर (i> 4) और (i <11) तो ... 

प्रदर्शन और पठनीयता दोनों के संदर्भ में गैर-सन्निहित मूल्यों के सेट विशेष रूप से उपयोगी हो सकते हैं:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

अगर मैं [0..3, 7, 9, 12..15] में हूं तो ... 

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

प्रकार की घोषणा
प्रकार की घोषणाओं का उपयोग करके प्रकारों को अन्य प्रकारों से परिभाषित किया जा सकता है:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

प्रकार एक्स = पूर्णांक; वाई = एक्स; ... 

इसके अलावा, जटिल प्रकारों का निर्माण सरल प्रकारों से किया जा सकता है:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

प्रकार = सरणी [1..10] पूर्णांक की; बी = रिकॉर्ड एक्स�: पूर्णांक; वाई: चार {अतिरिक्त अर्धविराम सख्ती से जरूरी नहीं} अंत; सी = ए की फाइल; 

फ़ाइल प्रकार
जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है, पास्कल कम्प्यूटर फाइल घटकों का क्रम है। हर फाइल में बफर वेरिएबल होता है जिसे f^ द्वारा दर्शाया जाता है। प्रक्रियाएं (पढ़ने के लिए) प्राप्त करती हैं और (लिखने के लिए) बफर चर को अगले तत्व में ले जाती हैं। पढ़ें इस तरह पेश किया जाता है कि पढ़ें (एफ, एक्स) एक्स के समान है: = एफ ^; प्राप्त करें (च); लिखना इस तरह पेश किया गया है कि लिखना (एफ, एक्स) एफ ^ : = एक्स के समान है; पुट (एफ); प्ररूप text चार की फ़ाइल के रूप में पूर्वनिर्धारित है। जबकि बफ़र चर का उपयोग अगले वर्ण के निरीक्षण के लिए किया जा सकता है (पूर्णांक पढ़ने से पहले अंक की जाँच करें), इससे शुरुआती कार्यान्वयन में इंटरैक्टिव कार्यक्रमों के साथ गंभीर समस्याएं होती हैं, लेकिन बाद में आलसी I/O अवधारणा के साथ हल किया गया था।

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

सूचक प्रकार
पास्कल सूचक (कंप्यूटर प्रोग्रामिंग) के उपयोग का समर्थन करता है:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

प्रकार pNode = ^नोड; नोड = रिकॉर्ड ए : पूर्णांक; बी : चार; सी : पीनोड अंत; वर NodePtr : pNode; IntPtr : ^पूर्णांक; </वाक्यविन्यास हाइलाइट>

यहाँ चर NodePtr डेटा प्रकार नोड, रिकॉर्ड के लिए सूचक है। घोषित होने से पहले पॉइंटर्स का उपयोग किया जा सकता है। यह आगे की घोषणा है, इस नियम का अपवाद है कि चीजों को इस्तेमाल करने से पहले घोषित किया जाना चाहिए।

नया रिकॉर्ड बनाने के लिए और रिकॉर्ड में फ़ील्ड a और b को मान 10 और वर्ण A असाइन करने के लिए, और पॉइंटर c को नल पॉइंटर (पास्कल में NIL) पर इनिशियलाइज़ करने के लिए, स्टेटमेंट होंगे:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

नया (नोडपट्र); ... NodePtr^.a := 10; NodePtr^.b := 'ए'; NodePtr^.c := शून्य; ... </वाक्यविन्यास हाइलाइट>

इसका उपयोग करके भी किया जा सकता है  बयान, इस प्रकार है:


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

नया (नोडपट्र); ... NodePtr ^ के साथ करते हैं शुरू ए: = 10; बी: = 'ए'; सी := शून्य अंत; ... </वाक्यविन्यास हाइलाइट>

with कथन के दायरे के अंदर, a और b रिकॉर्ड पॉइंटर NodePtr के सबफ़ील्ड को संदर्भित करते हैं न कि रिकॉर्ड नोड या पॉइंटर प्रकार pNode को।

लिंक्ड सूचियाँ, स्टैक (सार डेटा प्रकार) और कतार (सार डेटा प्रकार) रिकॉर्ड में सूचक प्रकार फ़ील्ड (c) को शामिल करके बनाया जा सकता है।

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

इनमें से कुछ प्रतिबंध नई बोलियों में हटाए जा सकते हैं।

नियंत्रण संरचना
पास्कल संरचित प्रोग्रामिंग भाषा है, जिसका अर्थ है कि नियंत्रण का प्रवाह मानक कथन (प्रोग्रामिंग) में संरचित है, आमतौर पर 'गोटो (कमांड)' कमांड के बिना।


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

जबकि a <> b do WriteLn('प्रतीक्षा');

यदि a > b तो WriteLn('शर्त पूरी हुई') {अन्य से पहले अर्धविराम की अनुमति नहीं है} और लिखेंLn ('शर्त पूरी नहीं हुई');

i के लिए: = 1 से 10 {कोई अर्धविराम नहीं है क्योंकि यह अगले कथन को अलग कर देगा} WriteLn ('पुनरावृत्ति:', i);

दोहराना ए := ए + 1 = 10 तक;

का मामला I   0 : लिखें ('शून्य'); 1 : लिखें ('एक'); 2: लिखें ('दो'); 3,4,5,6,7,8,9,10: लिखें('?') अंत; </वाक्यविन्यास हाइलाइट>

प्रक्रियाएं और कार्य
पास्कल प्रोग्राम को प्रक्रियाओं और कार्यों में स्ट्रक्चर करता है। आम तौर पर, इसके साइड इफेक्ट के लिए प्रक्रिया का उपयोग किया जाता है, जबकि इसके रिटर्न वैल्यू के लिए फ़ंक्शन का उपयोग किया जाता है।


 * <वाक्यविन्यास प्रकाश लैंग = पास्कल>

कार्यक्रम मुद्रण;

वर मैं : पूर्णांक;

प्रक्रिया PrintAnInteger(j : पूर्णांक); शुरू ... अंत;

फ़ंक्शन ट्रिपल (स्थिरांक x: पूर्णांक): पूर्णांक; शुरू त्रिक := x *3 अंत;

{मुख्य कार्यक्रम} शुरू करें ...   PrintAnInteger(i); PrintAnInteger (ट्रिपल (i)) अंत। </वाक्यविन्यास हाइलाइट>

प्रक्रियाओं और कार्यों को किसी भी गहराई तक नेस्ट किया जा सकता है, और 'प्रोग्राम' का निर्माण तार्किक बाहरीतम ब्लॉक है।

डिफ़ॉल्ट रूप से, पैरामीटर मान द्वारा पारित किए जाते हैं। यदि 'var' पैरामीटर के नाम से पहले है, तो इसे संदर्भ द्वारा पारित किया जाता है।

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

कथन विभाजक के रूप में अर्धविराम
पास्कल ने ALGOL भाषा से कई भाषा सिंटैक्स सुविधाओं को अपनाया, जिसमें अर्धविराम का उपयोग कथन विभाजक के रूप में किया गया। यह अन्य भाषाओं, जैसे कि PL/I और C (प्रोग्रामिंग भाषा) के विपरीत है, जो अर्धविराम को कथन टर्मिनेटर के रूप में उपयोग करते हैं। से पहले किसी अल्पविराम की आवश्यकता नहीं है  रिकॉर्ड प्रकार की घोषणा, ब्लॉक या केस स्टेटमेंट का कीवर्ड; से पहले   दोहराए गए कथन का कीवर्ड; और इससे पहले   if स्टेटमेंट का कीवर्ड।

पास्कल के शुरुआती संस्करणों में अतिरिक्त अर्धविराम की उपस्थिति की अनुमति नहीं थी। हालाँकि, 1973 की संशोधित रिपोर्ट में ALGOL जैसे खाली बयानों को जोड़ना और बाद में ISO 7185:1983 में भाषा में परिवर्तन अब इनमें से अधिकांश मामलों में वैकल्पिक अर्धविरामों की अनुमति देता है। के ठीक पहले अर्धविराम की अभी भी अनुमति नहीं है  if स्टेटमेंट में कीवर्ड, क्योंकि   कथन का अनुसरण करता है, कथन क्रम का नहीं। नेस्टेड ifs के मामले में, अर्धविराम का उपयोग झूलने वाली और समस्या से बचने के लिए नहीं किया जा सकता है (जहां आंतरिक if में कोई और नहीं है, लेकिन बाहरी अगर है) तो अर्धविराम के साथ नेस्टेड को समाप्त करके - यह इसके बजाय दोनों को समाप्त कर देता है खंड। इसके बजाय, स्पष्ट  ... ब्लॉक का प्रयोग करना चाहिए।

संकलक और दुभाषिया
सामान्य उपयोग के लिए कई पास्कल संकलक और दुभाषिए उपलब्ध हैं:


 * डेल्फी (सॉफ्टवेयर) एम्बरकाडेरो (पूर्व में बोरलैंड/कोडगियर) का प्रमुख त्वरित अनुप्रयोग विकास (आरएडी) उत्पाद है। यह Microsoft Windows, macOS, iOS और Android (ऑपरेटिंग सिस्टम) के लिए एप्लिकेशन बनाने के लिए पास्कल से निकली ऑब्जेक्ट पास्कल भाषा (बोरलैंड द्वारा 'डेल्फी' कहा जाता है) का उपयोग करता है। D8 से D2005, D2006, और D2007 तक मौजूद .NET समर्थन को समाप्त कर दिया गया है, और नई भाषा (प्रिज्म, जो ऑक्सीजन की रीब्रांडेड है, नीचे देखें) द्वारा प्रतिस्थापित किया गया है जो पूरी तरह से पिछड़े संगत नहीं है। हाल के वर्षों में यूनिकोड समर्थन और सामान्य प्रोग्रामिंग को जोड़ा गया (D2009, D2010, डेल्फी XE)।
 * फ्री पास्कल क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर है। क्रॉस-प्लेटफॉर्म कंपाइलर ऑब्जेक्ट पास्कल में लिखा गया है (और सेल्फ-होस्टिंग (कंपाइलर) है। सेल्फ-होस्टिंग)। इसका उद्देश्य सुविधाजनक और शक्तिशाली संकलक प्रदान करना है, जो पुराने अनुप्रयोगों को संकलित करने और नए विकसित करने का साधन बनने में सक्षम है। यह जीएनयू जनरल पब्लिक लाइसेंस (जीएनयू जीपीएल) के तहत वितरित किया जाता है, जबकि पैकेज और रनटाइम पुस्तकालय (कम्प्यूटिंग) संशोधित जीएनयू लेसर जनरल पब्लिक लाइसेंस (जीएनयू एलजीपीएल) के तहत आते हैं। टर्बो पास्कल, डेल्फी और मैक पास्कल के लिए अनुकूलता मोड के अलावा, इसके पास ऑपरेटर ओवरलोडिंग जैसी विस्तारित सुविधाओं के समर्थन के साथ अपने स्वयं के प्रक्रियात्मक और ऑब्जेक्ट-ओरिएंटेड सिंटैक्स मोड हैं। यह कई प्लेटफॉर्म और ऑपरेटिंग सिस्टम को सपोर्ट करता है। वर्तमान संस्करणों में आईएसओ मोड भी है।
 * Turbo51 माइक्रोकंट्रोलर्स के Intel 8051 परिवार के लिए Turbo Pascal 7 सिंटैक्स के साथ मुफ़्त पास्कल कंपाइलर है।
 * ऑक्सीजन (प्रोग्रामिंग लैंग्वेज) (पूर्व नाम क्रोम) .NET Framework|.NET और मोनो (सॉफ्टवेयर) प्लेटफॉर्म के लिए ऑब्जेक्ट पास्कल कंपाइलर है। यह बनाया गया था और RemObjects सॉफ़्टवेयर द्वारा बेचा जाता है, और कुछ समय के लिए Embarcadero द्वारा डेल्फी प्रिज्म के बैकएंड कंपाइलर के रूप में बेचा जाता है।
 * काइलिक्स (सॉफ्टवेयर) डेल्फी (सॉफ्टवेयर) का वंशज था, जिसमें लिनक्स ऑपरेटिंग सिस्टम और बेहतर ऑब्जेक्ट लाइब्रेरी का समर्थन था। यह अब समर्थित नहीं है। कंपाइलर और आईडीई अब गैर-व्यावसायिक उपयोग के लिए उपलब्ध हैं।
 * GNU पास्कल कंपाइलर (GPC) जीएनयू संकलक संग्रह (GCC) का पास्कल कंपाइलर है। कंपाइलर सी में लिखा गया है, रनटाइम लाइब्रेरी ज्यादातर पास्कल में है। जीएनयू जनरल पब्लिक लाइसेंस के तहत वितरित, यह कई प्लेटफॉर्म और ऑपरेटिंग सिस्टम पर चलता है। यह एएनएसआई/आईएसओ मानक भाषाओं का समर्थन करता है और इसमें आंशिक टर्बो पास्कल बोली समर्थन है। अधिक उल्लेखनीय चूक में से पूरी तरह से टर्बो पास्कल-संगत (लघु) स्ट्रिंग प्रकार की अनुपस्थिति है। बोर्लैंड डेल्फी और अन्य भाषा रूपों के लिए समर्थन काफी सीमित है। हालाँकि, मैक-पास्कल के लिए कुछ समर्थन है।
 * वर्चुअल पास्कल विटाली मिरानोव द्वारा 1995 में बोरलैंड पास्कल सिंटैक्स के साथ संगत देशी OS/2 संकलक के रूप में बनाया गया था। फिर, यह व्यावसायिक रूप से fPrint द्वारा विकसित किया गया था, जिसमें Win32 समर्थन जोड़ा गया था, और 2000 में यह फ्रीवेयर बन गया। आज यह Win32, OS/2, और Linux के लिए संकलन कर सकता है, और ज्यादातर बोरलैंड पास्कल और डेल्फी के साथ संगत है। विकास 4 अप्रैल, 2005 को रद्द कर दिया गया था।
 * P4 संकलक, बाद के कई पास्कल-कार्यान्वित-में-पास्कल संकलक के लिए आधार। यह पूर्ण पास्कल का सबसेट लागू करता है।
 * P5 संकलक P4 का ISO 7185 (पूर्ण पास्कल) रूपांतरण है।
 * स्मार्ट मोबाइल स्टूडियो HTML5/जावास्क्रिप्ट कंपाइलर का पास्कल है
 * टर्बो पास्कल 1980 और 1990 के दशक के दौरान पीसी के लिए प्रमुख पास्कल कंपाइलर था, जो अपने शक्तिशाली एक्सटेंशन और बेहद कम संकलन समय दोनों के कारण लोकप्रिय था। टर्बो पास्कल कॉम्पैक्ट रूप से लिखा गया था और डिस्क तक पहुंच के बिना मेमोरी से संकलित, चला और डिबग कर सकता था। धीमी फ़्लॉपी डिस्क ड्राइव उस समय प्रोग्रामरों के लिए सामान्य थी, जो टर्बो पास्कल की गति के लाभ को और बढ़ा देती थी। वर्तमान में, टर्बो पास्कल (5.5 तक) के पुराने संस्करण बोरलैंड की साइट से मुफ्त डाउनलोड के लिए उपलब्ध हैं।
 * आईपी पास्कल भाषा पास्कलिन (पास्कल के कैलकुलेटर के नाम पर) को लागू करता है, जो अत्यधिक विस्तारित पास्कल कॉम्पिटिटर हैआईएसओ 7185 के अनुसार मूल पास्कल के साथ योग्य। इसमें नेमस्पेस नियंत्रण के साथ मॉड्यूल शामिल हैं, जिसमें सेमाफोर, ऑब्जेक्ट्स, रनटाइम, ओवरलोड, ओवरराइड्स और कई अन्य एक्सटेंशन पर आवंटित किसी भी आयाम के गतिशील सरणी के साथ समांतर टास्किंग मॉड्यूल शामिल हैं। आईपी ​​पास्कल में अंतर्निहित पोर्टेबिलिटी लाइब्रेरी है जो पास्कल भाषा के अनुरूप कस्टम है। उदाहरण के लिए, 1970 के मूल पास्कल से मानक टेक्स्ट आउटपुट एप्लिकेशन को विंडो में काम करने के लिए फिर से संकलित किया जा सकता है और इसमें ग्राफिकल निर्माण भी जोड़ा जा सकता है।
 * Pascal-XT को सीमेंस ने अपने मेनफ्रेम कंप्यूटर ऑपरेटिंग सिस्टम BS2000 और SINIX के लिए बनाया था।
 * PocketStudio पाम OS और MC68xxx प्रोसेसर के लिए पास्कल सबसेट कंपाइलर और RAD टूल है, जिसके कुछ एक्सटेंशन पाम OS API के साथ इंटरफेसिंग में सहायता करते हैं। यह दृश्य रूप डिजाइनर, वस्तु निरीक्षक और स्रोत कोड संपादक के साथ डेल्फी और लाजर जैसा दिखता है।
 * मिडलेट पास्कल - पास्कल कंपाइलर और आईडीई जो विशेष रूप से मोबाइल के लिए सॉफ्टवेयर बनाने के लिए डिज़ाइन किए गए छोटे और तेज़ जावा बाइटकोड उत्पन्न करता है।
 * वेक्टर पास्कल SIMD इंस्ट्रक्शन सेट जैसे MMX और AMD 3d Now के लिए भाषा है, जो सभी Intel और AMD प्रोसेसर और Sony के PlayStation 2 इमोशन इंजन को सपोर्ट करती है।
 * मॉर्फिक पास्कल पूरी तरह से ऑब्जेक्ट पास्कल (सर्वर और ब्राउज़र दोनों तरफ) में लिखे गए वेब एप्लिकेशन के विकास की अनुमति देता है।
 * WDSibyl - Win32 और OS/2 के लिए विज़ुअल डेवलपमेंट एनवायरनमेंट और पास्कल कंपाइलर।
 * पीपी कंपाइलर, पाम ओएस के लिए कंपाइलर जो सीधे हैंडहेल्ड कंप्यूटर पर चलता है।
 * सीडीसी 6000 पास्कल कंपाइलर पहले (सीडीसी 6000) पास्कल कंपाइलर का स्रोत कोड है।
 * पास्कल-एस
 * AmigaPascal, Amiga कंप्यूटर के लिए मुफ़्त पास्कल कंपाइलर है।
 * OpenVMS के लिए VSI पास्कल (OpenVMS के लिए पूर्व में HP पास्कल, कॉम्पैक पास्कल, DEC पास्कल, VAX पास्कल और मूल रूप से VAX-11 पास्कल ) पास्कल कंपाइलर है जो OpenVMS सिस्टम पर चलता है। यह Tru64 के तहत भी समर्थित था। OpenVMS के लिए VSI पास्कल ISO/IEC 7185:1990 पास्कल के साथ-साथ कुछ ISO/IEC 10206:1990 विस्तारित पास्कल के साथ संगत है, और इसके अपने एक्सटेंशन भी शामिल हैं। कंपाइलर कंपाइलर # फ्रंट एंड परम आनंद में लागू किया गया है।
 * स्टोनी ब्रुक पास्कल+ डॉस और ओएस/2 के लिए 16-बिट (बाद में 32-बिट) ऑप्टिमाइज़िंग कंपाइलर था, जिसे टर्बो पास्कल के सीधे प्रतिस्थापन के रूप में विपणन किया गया था, लेकिन उत्पादन कोड जो कम से कम दो बार तेजी से निष्पादित हुआ।

आईडीई

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

पुस्तकालय

 * फ्री पास्कल कंपाइलर के साथ जीयूआई एप्लिकेशन बनाने के लिए डब्ल्यूओएल लाइब्रेरी।

आईएसओ/आईईसी 7185:1990 पास्कल
1983 में, भाषा को अंतर्राष्ट्रीय मानक IEC/ISO 7185 में मानकीकृत किया गया था और अमेरिकी ANSI/IEEE770X3.97-1983, और ISO 7185:1983 सहित कई स्थानीय देश-विशिष्ट मानक। ये दो मानक केवल इसमें भिन्न थे कि आईएसओ मानक में अनुरूप सरणियों के लिए स्तर 1 विस्तार शामिल था (सरणी जहां सरणी की सीमाएं रन टाइम तक ज्ञात नहीं हैं), जहां एएनएसआई ने इस विस्तार के लिए मूल (विर्थ संस्करण) की अनुमति नहीं दी थी। भाषा। 1989 में, मूल दस्तावेज़ में पाई गई विभिन्न त्रुटियों और अस्पष्टताओं को ठीक करने के लिए ISO 7185 को संशोधित किया गया (ISO 7185:1990)।

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

निकलॉस विर्थ ने स्वयं 1974 की भाषा को मानक के रूप में संदर्भित किया, उदाहरण के लिए, सीडीसी 6000 संकलक की मशीन विशिष्ट विशेषताओं से इसे अलग करने के लिए। इस भाषा को पास्कल रिपोर्ट में प्रलेखित किया गया था, पास्कल उपयोगकर्ता पुस्तिका और रिपोर्ट का दूसरा भाग।

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

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

आईएसओ/आईईसी 10206:1990 विस्तारित पास्कल
1990 में, ISO/IEC 10206 के रूप में विस्तारित पास्कल मानक बनाया गया था, जो तकनीकी सामग्री  में समान हैआईईईई/एएनएसआई 770X3.160-1989 के लिए </रेफरी> रेफरी></रेफरी> 2019 तक, FreePascal Compiler में विस्तारित पास्कल के समर्थन की योजना है। रेफरी></रेफरी>

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

यूसीएसडी पास्कल, प्रोफेसर केनेथ बाउल्स के तहत, पास्कल-पी 2 किट पर आधारित था, और परिणामस्वरूप पास्कल-पी भाषा प्रतिबंधों में से कई को साझा किया। यूसीएसडी पास्कल को बाद में एप्पल पास्कल के रूप में अपनाया गया, और वहां कई संस्करणों के माध्यम से जारी रखा गया। हालांकि यूसीएसडी पास्कल ने वास्तव में पास्कल-पी किट में पास्कल के सबसेट पास्कल को वापस मानक पास्कल निर्माणों को जोड़कर विस्तारित किया, यह अभी भी पास्कल की पूर्ण मानक स्थापना नहीं थी।

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

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

बोरलैंड के ऑब्जेक्ट पास्कल और डेल्फी (सॉफ़्टवेयर) और गैर-बोरलैंड निकट-संगतताओं सहित श्रिंक-रैप्ड टर्बो पास्कल संस्करण 3 और बाद के अवतार, शेयरवेयर लेखकों सहित प्रोग्रामर के साथ लोकप्रिय हो गए, और इसलिए पास्कल कोड की SWAG लाइब्रेरी में बड़ी मात्रा में कोड हैं। डेल्फी जैसे संस्करणों को ध्यान में रखकर लिखा गया है।

इस श्रेणी में सॉफ्टवेयर उत्पाद (संकलक, और आईडीई/रैपिड एप्लीकेशन डेवलपमेंट (आरएडी)):
 * टर्बो पास्कल - TURBO.EXE वर्जन 7 तक, और विंडोज (TPW) के लिए टर्बो पास्कल और टर्बो पास्कल#Apple Macintosh।
 * कंप्यूटर की अटारी एसटी श्रृंखला के लिए शुद्ध पास्कल और हाईस्पीड पास्कल 2 पास्कल भाषा पर्यावरण।
 * टर्बो पास्कल - टर्बो पास्कल लाइन का पेशेवर संस्करण जो डॉस और विंडोज दोनों को लक्षित करता है।
 * ऑब्जेक्ट पास्कल - पास्कल भाषा का विस्तार जिसे पास्कल के आविष्कारक निकलॉस विर्थ के परामर्श से लैरी टेस्लर के नेतृत्व में टीम द्वारा एप्पल कंप्यूटर में विकसित किया गया था; इसकी विशेषताओं को बोरलैंड के टर्बो पास्कल #Apple Macintosh और 1989 में DOS के लिए टर्बो पास्कल 5.5 में जोड़ा गया था।
 * डेल्फी (सॉफ्टवेयर) - ऑब्जेक्ट पास्कल अनिवार्य रूप से इसकी अंतर्निहित भाषा है।
 * फ्री पास्कल कंपाइलर (FPC) - फ्री पास्कल ने पास्कल प्रोग्रामर, बोरलैंड पास्कल और बाद में, डेल्फी की वास्तविक मानक बोली को अपनाया। फ्रीपास्कल भी दोनों आईएसओ मानकों का समर्थन करता है।
 * PascalABC.NET - संकलक और IDE सहित नई पीढ़ी की पास्कल प्रोग्रामिंग भाषा।
 * काइलिक्स (सॉफ्टवेयर) कंपाइलर और आईडीई है जिसे पहले बोरलैंड द्वारा बेचा जाता था, लेकिन बाद में बंद कर दिया गया। यह डेल्फी (सॉफ्टवेयर) सॉफ्टवेयर विकास पर्यावरण और सी ++ बिल्डर का लिनक्स संस्करण है।
 * लाजर (आईडीई) - फ़ंक्शन में काइलिक्स के समान, फ्री पास्कल कंपाइलर का उपयोग करके आरएडी के लिए मुफ्त क्रॉस-प्लेटफ़ॉर्म विज़ुअल आईडीई है, जो अलग-अलग डिग्री के ऑब्जेक्ट पास्कल की बोलियों का समर्थन करता है।
 * वर्चुअल पास्कल - VP2/1 OS/2 और विंडोज 32 के लिए पूरी तरह से बोरलैंड पास्कल- और बोरलैंड डेल्फी-संगत 32-बिट पास्कल कंपाइलर है (रास्ते में लिनक्स संस्करण के साथ)।
 * सिबिल ओपन सोर्स डेल्फी जैसा आईडीई और कंपाइलर है; कार्यान्वयन में शामिल हैं:
 * डब्ल्यूडीसिबिल Microsoft Windows और OS/2 के लिए, स्पीडसॉफ्ट नाम की कंपनी द्वारा जारी किया गया व्यावसायिक बोरलैंड पास्कल संगत वातावरण जिसे बाद में सिबिल नाम के डेल्फी-जैसे रैपिड एप्लिकेशन डेवलपमेंट (RAD) वातावरण में विकसित किया गया और फिर GPL के तहत ओपन सोर्स किया गया जब वह कंपनी बंद हो गई। ;
 * ओपन सिबिल, जो चालू परियोजना है, OS/2 और eCS के लिए ओपन-सोर्स सॉफ़्टवेयर टूल है जो मूल रूप से स्पीडसॉफ्ट के WDsybl सिबिल पोर्टेबल कंपोनेंट क्लासेस (SPCC) और सिबिल विज़ुअल डेवलपमेंट टूल (SVDE) स्रोतों पर आधारित था, लेकिन अब इसका कोर आईबीएम सिस्टम ऑब्जेक्ट मॉडल (SOM), WPS और OpenDoc है।

संबंधित मानकों की सूची

 * मानकीकरण के लिए अंतर्राष्ट्रीय संगठन 8651-2:1988 सूचना प्रसंस्करण प्रणाली - कंप्यूटर ग्राफिक्स - ग्राफिकल कर्नेल सिस्टम (जीकेएस) भाषा बाइंडिंग - भाग 2: पास्कल

रिसेप्शन
पास्कल ने कंप्यूटिंग समुदाय में महत्वपूर्ण और मानार्थ दोनों तरह की प्रतिक्रियाएं उत्पन्न कीं।

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

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

यह भी देखें

 * अदा (प्रोग्रामिंग भाषा)
 * समवर्ती पास्कल
 * पास्कल और डेल्फी की तुलना
 * पास्कल और सी की तुलना
 * मोडुला-2
 * ओबेरॉन (प्रोग्रामिंग भाषा)
 * ऑब्जेक्ट पास्कल
 * पास्कलकेस
 * मानक एमएल

अग्रिम पठन

 * Niklaus विर्थ: The Programming Language Pascal. 35–63, Acta Informatica, Volume 1, 1971.
 * C. A. R. Hoare: "Notes on data structuring". In O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare, editors, Structured Programming, pages 83–174. Academic Press, 1972.
 * C. A. R. Hoare, Niklaus विर्थ: An Axiomatic Definition of the Programming Language Pascal. 335–355, Acta Informatica, Volume 2, 1973.
 * Kathleen Jensen and Niklaus विर्थ: Pascal – User Manual and Report. Springer-Verlag, 1974, 1985, 1991, ISBN 0-387-97649-3 and ISBN 3-540-97649-3.
 * Niklaus विर्थ: Algorithms + Data Structures = Programs. Prentice-Hall, 1975, ISBN 0-13-022418-9.
 * Niklaus विर्थ: An assessment of the programming language Pascal. 23–30 ACM SIGPLAN Notices Volume 10, Issue 6, June 1975.
 * N. विर्थ, and A. I. Wasserman, ed: Programming Language Design. IEEE Computer Society Press, 1980
 * D. W. Barron (Ed.): Pascal – The Language and its Implementation. John Wiley 1981, ISBN 0-471-27835-1
 * Peter Grogono: Programming in Pascal, Revised Edition, Addison-Wesley, 1980
 * Richard S. Forsyth: Pascal in Work and Play, Chapman and Hall, 1982
 * N. विर्थ, M. Broy, ed, and E. Denert, ed: Pascal and its Successors in Software Pioneers: Contributions to Software Engineering. Springer-Verlag, 2002, ISBN 3-540-43081-4
 * N. विर्थ: Recollections about the Development of Pascal. ACM SIGPLAN Notices, Volume 28, No 3, March 1993.