प्रोसीज़रल प्रोग्रामिंग

प्रक्रियात्मक प्रोग्रामिंग विशेष रूप से प्रोग्रामिंग प्रतिमान है, जो अनिवार्य प्रोग्रामिंग से प्राप्त हुआ है, चूँकि प्रक्रिया कॉल की अवधारणा के आधार पर प्रक्रियाएं (प्रकार की दिनचर्या या उपनेमका) में केवल किए जाने वाले कम्प्यूटेशनल चरणों की श्रृंखला होती है। किसी कार्यक्रम के निष्पादन के किसी भी समय किसी भी प्रक्रिया को बुलाया जा सकता है, जिसमें अन्य प्रक्रियाएं या स्वयं सम्मलित हैं। प्रथम प्रमुख प्रक्रियात्मक प्रोग्रामिंग भाषाएं सन् 1957-1964 के आसपास दिखाई देती है। जिनमें फोरट्रान, ALGOL, COBOL, PL/I और BASIC इत्यादि सम्मलित हैं। अतः पास्कल (प्रोग्रामिंग भाषा) और सी (प्रोग्रामिंग भाषा) सन् 1970-1972 के आसपास  प्रकाशित हुए थे।

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

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

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

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

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

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

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

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

जंहा नामकरण दोनों के मध्य भिन्न होता है, चूंकि उनके समान शब्दार्थ हैं।

कार्यात्मक प्रोग्रामिंग
व्यावहारिक योजना (प्रोग्रामिंग भाषाओं) में मध्यस्थिती और संकेत-लिपि पुन: उपयोग के सिद्धांत मूल रूप से प्रक्रियात्मक भाषाओं के समान ही हैं, चूँकि वे दोनों संरचित प्रोग्रामिंग से उत्पन्न होते हैं। तो उदाहरण के लिए,
 * प्रक्रियाएं कार्यों के अनुरूप होती हैं। अतः दोनों कार्यक्रमों के विभिन्न भागों में और इसके निष्पादन के विभिन्न बिंदुओं पर समान संकेत-लिपि के पुन: उपयोग की अनुमति देते हैं।
 * उसी प्रतीक से प्रक्रिया कॉल अनुष्ठान आवेदन के अनुरूप होती है।
 * अनुष्ठान तर्कों, विवरणी महत्व और अस्थिर सीमा के उपयोग से अनुष्ठान और उनके मध्यस्थ ही विधि से दूसरे से भिन्न हो जाते हैं।

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

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

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

तर्क प्रोग्रामिंग
तर्क प्रोग्रामिंग में, प्रोग्राम परिसर का सेट है, और उम्मीदवार प्रमेयों को सिद्ध करना करने का प्रयास करके गणना की जाती है। इस दृष्टिकोण से, तर्क कार्यक्रम घोषणात्मक प्रोग्रामिंग हैं, जो समस्या को हल करने के तरीके के अतिरिक्त इस पर ध्यान केंद्रित करते हैं।

चूँकि, SLD रिज़ॉल्यूशन द्वारा कार्यान्वित पिछड़ा तर्क तकनीक, लॉजिक प्रोग्रामिंग भाषा जैसे प्रोलॉग में समस्याओं को हल करने के लिए उपयोग की जाती है, प्रोग्राम को लक्ष्य-घटाने की प्रक्रिया के रूप में मानती है। इस प्रकार प्रपत्र के खंड:


 * H :- B1, …, Bn.

प्रक्रियाओं के रूप में दोनों की दोहरी व्याख्या है


 * दिखाने/हल करने के लिए H, दिखाएँ / हल करें B1 और और Bn

और तार्किक प्रभाव के रूप में:


 * B1 and … and Bn implies H.

अनुभवी लॉजिक प्रोग्रामर उन कार्यक्रमों को लिखने के लिए प्रक्रियात्मक व्याख्या का उपयोग करते हैं जो प्रभावी और कुशल हैं, और वे यह सुनिश्चित करने में सहायता के लिए घोषणात्मक व्याख्या का उपयोग करते हैं कि कार्यक्रम सही हैं।

यह भी देखें

 * प्रोग्रामिंग प्रतिमानों की तुलना
 * घोषणात्मक प्रोग्रामिंग
 * कार्यात्मक प्रोग्रामिंग (विपरीत)
 * अनिवार्य प्रोग्रामिंग
 * तर्क प्रोग्रामिंग
 * ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग
 * प्रोग्रामिंग प्रतिमान
 * प्रोग्रामिंग भाषा
 * संरचित प्रोग्रामिंग
 * एसक्यूएल # प्रक्रियात्मक एक्सटेंशन