2009-05-19 29 views
28

हम क्यों कहते हैं कि सी जैसी भाषा शीर्ष-डाउन है जबकि ओओपी भाषाएं जावा या सी ++ जैसे नीचे-नीचे हैं? क्या इस वर्गीकरण के सॉफ्टवेयर विकास में कोई महत्व है?शीर्ष नीचे और नीचे प्रोग्रामिंग

+0

ठीक है। तो अब मैं समझता हूं कि इन दृष्टिकोणों को मूल रूप से विशेष भाषाओं की तुलना में "सोचने का तरीका" (प्रतिमान) के साथ और अधिक करना पड़ता है। अपने जवाब के लिए हर किसी को धन्यवाद। –

उत्तर

55

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

"नीचे" प्रोग्रामिंग में, आप निचले-स्तर के टूल की पहचान करते हैं जिन्हें आप एक बड़ा प्रोग्राम बनने के लिए लिख सकते हैं।

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

-5

सी संरचित भाषा है और कार्यक्रमों का अनुक्रम ऊपर से नीचे तक है। मुख्य विधि से शुरू करना।

जबकि ओओपी कक्षाओं और वस्तुओं की संख्या पर निर्भर करता है। कार्यक्रम के प्रवाह को यह विकिपीडिया पृष्ठ यह बहुत अच्छी तरह से http://en.wikipedia.org/wiki/Top-down#Programming

+3

सी में विधियां नहीं हैं। ओओपी में प्रवाह नीचे चला जाता है। टॉप-डाउन डिज़ाइन को संदर्भित करता है, प्रोग्राम प्रवाह नहीं। संक्षेप में, नहीं। – rlbond

2

में दृष्टिकोण शीर्ष नीचे में नहीं है ले लो, तो आप उन चरणों में से प्रत्येक को अपने उप-वर्गों में तोड़ दें, और इसी तरह।

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

OOP स्वाभाविक रूप से, नीचे से ऊपर की ओर जाता है के रूप में आप अपने वस्तुओं को विकसित करते हुए प्रक्रियात्मक प्रोग्रामिंग ऊपर से नीचे की ओर जाता है के रूप में आप एक समारोह के साथ शुरू और धीरे धीरे इसे करने के लिए जोड़ सकते हैं।

13

बताते हैं ऊपर से नीचे विकास में आप अपने मुख्य कार्य के साथ शुरू, और फिर मुख्य कदम आप की जरूरत के बारे में सोच OOP

+0

यह एक अच्छा स्पष्टीकरण है –

3

मैंने कभी भी वर्गीकरण को विशिष्ट भाषाओं पर लागू नहीं किया है, बल्कि यह एक प्रोग्रामिंग प्रतिमान है - क्या आप पहले विवरण भरते हैं (यानी पूर्ण कार्यान्वयन विधियों का निर्माण) और फिर उन्हें एक साथ रखें (उदाहरण के लिए उन्हें उनसे मुख्य() विधि), या तार्किक प्रवाह के साथ शुरू करें और फिर कार्यान्वयन मांस?

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

+0

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

4

मैंने कभी भी "टॉप-डाउन" और "तल-अप" शब्द को इस तरह से नहीं सुना है।

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

"ऑन एलआईएसपी" में, पॉल ग्राहम साझा कार्यों में सामान्य कार्यक्षमता को लगातार निकालने के लिए "तल-अप" शब्द का थोड़ा अलग उपयोग करते हैं ताकि आप LISP की एक नई, उच्च स्तरीय बोलीभाषा बना सकें जो आपको प्रोग्राम करने देता है आपके आवेदन डोमेन की शर्तें। यह शब्द का एक आम उपयोग नहीं है। इन दिनों हम कॉल करेंगे कि "रिफैक्टरिंग" और "डोमेन-विशिष्ट एम्बेडेड भाषाएं" (और पुराने एलआईएसपी प्रोग्रामर यह कहेंगे कि 1 9 50 के दशक से एलआईएसपी ऐसा करने में सक्षम है)।

1

यह प्रतिमान (उन्मुख वस्तु, अनिवार्य, functionnal आदि) सिंटेक्स की तुलना के बारे में अधिक है।

dept-info.labri.fr से

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

एक ही लेख में बाद में:

सी या जावा के रूप में एक भाषा में, नीचे-ऊपर प्रोग्रामिंग भाषा के पुरातन या मौजूदा सार से से सार डेटा प्रकार के निर्माण के रूप लेता है जानकारी का प्रकार।

0

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

e.g.- एक सी कार्यक्रम में एक कार्यक्रम के शीर्ष पर कार्यों की घोषणा करने की जरूरत है और फिर हर सबसिस्टम/सबरूटीन के लिए मुख्य प्रवेश के माध्यम से विस्तार से परिभाषित किया गया है।

बॉटम-अप दृष्टिकोण पहली डिजाइन में, अमूर्त स्तर पर आधार स्तर से शुरू किया जाता है।

जैसे-इन C++/जावा प्रोग्रामिंग सुविधाओं के बुनियादी स्तर से कक्षा से डिजाइन करने के लिए शुरू होता है और फिर कार्यक्रम के मुख्य भाग को जाता है।

0

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

संबंधित मुद्दे