भले ही शब्दावली मानकीकृत से दूर है, एक सामान्य तरीका प्रमुख प्रोग्रामिंग प्रतिमानों को वर्गीकृत करना है
- प्रक्रियात्मक
- कार्यात्मक
- तार्किक
- वस्तु के उन्मुख
- सामान्य
आप पहले से ही जानते हैं कि प्रक्रियात्मक प्रोग्रामिंग क्या है।
में कार्यात्मक भाषाओं कार्यों प्रथम श्रेणी वस्तुओं के रूप में माना जाता है। दूसरे शब्दों में, आप एक फ़ंक्शन को दूसरे फ़ंक्शन के तर्क के रूप में पास कर सकते हैं, या एक फ़ंक्शन दूसरे फ़ंक्शन को वापस कर सकता है। कार्यात्मक प्रतिमान लैंबडा कैलकुलस पर आधारित है, और कार्यात्मक भाषाओं के उदाहरण एलआईएसपी, स्कीम और हास्केल हैं। दिलचस्प है, जावास्क्रिप्ट भी कार्यात्मक प्रोग्रामिंग का समर्थन करता है।
में तार्किक प्रोग्रामिंग आप विधेय है जो इस तरह के रूप में संस्थाओं, बीच संबंधों का वर्णन परिभाषित president(Obama, USA)
या president(Medvedev, Russia)
। ये विधेय बहुत जटिल हो सकते हैं और इसमें चर शामिल हो सकते हैं, न कि केवल शाब्दिक मूल्य। एक बार जब आप अपने सभी विधेयकों को निर्दिष्ट कर लेते हैं, तो आप अपने सिस्टम के प्रश्न पूछ सकते हैं, और तार्किक रूप से सुसंगत उत्तर प्राप्त कर सकते हैं।
लॉजिकल प्रोग्रामिंग में बड़ा विचार यह है कि कंप्यूटर को चीजों की गणना करने का तरीका बताने के बजाय , आप यह बताते हैं कि चीजें क्या हैं। उदाहरण: PROLOG।
ऑब्जेक्ट-ओरिएंटेड प्रतिमान कुछ मायनों में प्रक्रियात्मक प्रोग्रामिंग का विस्तार है। प्रक्रियात्मक प्रोग्रामिंग में आपके पास अपना डेटा होता है, जो आदिम प्रकार हो सकता है, जैसे पूर्णांक और फ़्लोट्स, यौगिक प्रकार, जैसे सरणियाँ या सूचियाँ, और उपयोगकर्ता-परिभाषित प्रकार, जैसे संरचनाएँ। आपके पास आपकी प्रक्रियाएं भी हैं, जो डेटा पर काम करती हैं। इसके विपरीत, OO में आपके पास ऑब्जेक्ट हैं, जिसमें डेटा और प्रक्रिया दोनों शामिल हैं। इससे आपको एनकैप्सुलेशन, इनहेरिटेंस, और पॉलीमोर्फिज्म जैसी अच्छी चीजें मिलती हैं। उदाहरण: स्मालटाक, सी ++, जावा, सी #।
जेनेरिक प्रोग्रामिंग को पहली बार 1983 में Ada में पेश किया गया था, और C ++ में टेम्प्लेट की शुरुआत के बाद व्यापक हो गया। यह विचार है कि आप वास्तविक डेटा प्रकारों को निर्दिष्ट किए बिना कोड लिख सकते हैं जो इसे संचालित करता है, और संकलक का आंकड़ा है। उदाहरण के लिए लिखने के बजाय
void swap(int, int);
void swap(float, float);
....
आप लिखेंगे
void swap(T, T);
एक बार, और कंपाइलर जो कुछ भी T
हो, के लिए विशिष्ट कोड उत्पन्न करता है, जब swap()
वास्तव में कोड में उपयोग किया जाता है।
जेनेरिक प्रोग्रामिंग को C ++, Java, और C # द्वारा अलग-अलग डिग्री के लिए समर्थित किया जाता है।
यह ध्यान रखना महत्वपूर्ण है कि कई भाषाएँ, जैसे C ++, कई प्रतिमानों का समर्थन करती हैं। यह भी सच है कि जब किसी भाषा को किसी विशेष प्रतिमान का समर्थन करने के लिए कहा जाता है, तब भी वह सभी प्रतिमानों की विशेषताओं का समर्थन नहीं कर सकता है। यह उल्लेख नहीं करने के लिए कि बहुत अधिक असहमति है कि किसी विशेष प्रतिमान के लिए किन विशेषताओं की आवश्यकता है।