अधिकांश प्रक्रियात्मक भाषाओं की मूल बातें बहुत समान हैं।
वे प्रस्ताव देते है:
- स्केलर डेटा प्रकार: आमतौर पर बूलियन, पूर्णांक, फ्लोट और वर्ण
- यौगिक डेटा प्रकार: सरणियाँ (तार विशेष मामले हैं) और संरचनाएं
- मूल कोड निर्माण: स्केलर, सरणी / संरचना पहुंच, असाइनमेंट पर अंकगणित
- सरल नियंत्रण संरचनाएं: यदि-तब, यदि-तब-तब, जबकि, छोरों के लिए
- कोड ब्लॉक के पैकेज: पैरामीटर के साथ कार्य, प्रक्रियाएं
- स्कोप: वे क्षेत्र जिनमें पहचानकर्ता के विशिष्ट अर्थ होते हैं
यदि आप इसे समझते हैं, तो आपके पास ग्रह पर 90% भाषाओं की अच्छी समझ है। इन भाषाओं को समझने में थोड़ा मुश्किल होता है, जो कि विभिन्न प्रकार के विषम वाक्यविन्यास हैं, जिन्हें लोग एक ही मूल बातें कहने के लिए उपयोग करते हैं। कुछ विराम चिह्नों का उपयोग करते हैं जिसमें विषम विराम चिह्न (एपीएल एक चरम) होता है। कुछ खोजशब्द बहुत उपयोग करते हैं (COBOL एक उत्कृष्ट प्रतिनिधि है)। इससे ज्यादा फर्क नहीं पड़ता। इससे कोई फर्क नहीं पड़ता कि यदि भाषा पर्याप्त रूप से अपने आप में जटिल कार्य करने के लिए पर्याप्त है, ताकि आप अपने बालों को फाड़ सकें। (विंडो डीओएस शेल स्क्रिप्ट में कुछ गंभीर स्ट्रिंग हैकिंग को कोड करने की कोशिश करें: यह ट्यूरिंग सक्षम है लेकिन वास्तव में सब कुछ खराब है)।
अधिक दिलचस्प प्रक्रियात्मक भाषाएं प्रदान करती हैं
- नेस्टेड या लेक्सिकल स्कोप्स, नेमस्पेस
- गतिशील भंडारण आवंटन के साथ पॉइंटर्स एक इकाई को दूसरे को संदर्भित करने की अनुमति देते हैं
- संबंधित कोड की पैकेजिंग: पैकेज, विधियों के साथ ऑब्जेक्ट, लक्षण
- अधिक परिष्कृत नियंत्रण: पुनरावृत्ति, निरंतरता, क्लोजर
- विशिष्ट ऑपरेटरों: स्ट्रिंग और सरणी संचालन, गणित कार्य
जबकि तकनीकी रूप से लैंगगॉव की संपत्ति नहीं है, लेकिन पारिस्थितिकी तंत्र की एक संपत्ति जिसमें ऐसी भाषाएं रहती हैं, वे पुस्तकालय हैं जो आसानी से सुलभ हैं या विकास उपकरण के भाग के रूप में भाषा के साथ प्रदान किए जाते हैं। पुस्तकालय सुविधाओं की एक विस्तृत श्रृंखला होने से आवेदन लिखने में सरलता / गति आती है, क्योंकि किसी को पुस्तकालयों के लिए क्या करना है, यह पुष्ट नहीं करना है। जबकि जावा और सी # व्यापक रूप से अच्छी भाषा में और अपने आप को माना जाता है, जो उन्हें वास्तव में उपयोगी बनाता है वे विशाल पुस्तकालय हैं जो उनके साथ आते हैं, और आसानी से प्राप्य एक्सटेंशन लाइब्रेरी हैं।
जिन भाषाओं को समझना कठिन है, वे गैर-प्रक्रियात्मक हैं:
- विशुद्ध रूप से कार्यात्मक भाषाएं, बिना असाइनमेंट या साइड इफेक्ट के
- लॉजिक, जैसे कि प्रोलॉग, जिसमें प्रतीकात्मक संगणना और एकीकरण होता है
- पैटर्न से मेल खाने वाली भाषाएं, जिसमें आप उन आकृतियों को निर्दिष्ट करते हैं जो समस्या से मेल खाती हैं, और अक्सर कार्यों को एक मैच द्वारा ट्रिगर किया जाता है
- बाधा भाषाएं, जो आपको संबंधों को निर्दिष्ट करती हैं और स्वचालित रूप से समीकरणों को हल करती हैं
- हार्डवेयर भाषाओं का वर्णन करते हैं, जिसमें सब कुछ समानांतर में निष्पादित होता है
- डोमेन-विशिष्ट भाषाएं, जैसे कि SQL, रंगीन पेट्री नेट आदि।
भाषाओं के लिए दो प्रमुख प्रतिनिधित्वात्मक शैलियाँ हैं:
- पाठ आधारित, जिसमें पहचानकर्ता नाम संस्थाओं और सूचना प्रवाह को सूत्रों में स्पष्ट रूप से एन्कोड किया गया है जो पहचानकर्ताओं का उपयोग संस्थाओं (जावा, एपीएल, ...) के नाम के लिए करता है
- ग्राफिकल, जिसमें संस्थाओं को नोड्स के रूप में तैयार किया जाता है, और संस्थाओं के बीच संबंधों को उन नोड्स (यूएमएल, सिमुलिंक, लैब व्यू) के बीच स्पष्ट आर्क के रूप में तैयार किया जाता है।
ग्राफिकल भाषाएं अक्सर नोडल और आर्क पर एनोटेशन के रूप में शाब्दिक उप-भाषाएं की अनुमति देती हैं। ओडर आलेखीय भाषाएं रेखांकन की अनुमति देता है (पाठ के साथ :) नोड्स में और आर्क्स पर। वास्तव में विषम चित्रमय भाषाएँ एनोटेशन ग्राफ़ को रेखांकन करने के लिए इंगित करने की अनुमति देती हैं।
इनमें से अधिकांश भाषाएँ गणना के बहुत कम मॉडल पर आधारित हैं:
- लैम्ब्डा कैलकुलस (लिस्प और सभी कार्यात्मक भाषाओं के लिए आधार)
- पोस्ट सिस्टम (या स्ट्रिंग / ट्री / ग्राफ पुनर्लेखन तकनीक)
- ट्यूरिंग मशीनें (नई स्मृति कोशिकाओं का राज्य संशोधन और चयन)
प्रक्रियात्मक भाषाओं और जटिल नियंत्रण संरचनाओं पर उद्योग के अधिकांश ध्यान केंद्रित को देखते हुए, आप अच्छी तरह से सेवा कर रहे हैं यदि आप इस श्रेणी में और अधिक दिलचस्प भाषाओं में से एक को अच्छी तरह से सीखते हैं, खासकर अगर इसमें किसी प्रकार का ऑब्जेक्ट-ओरिएंटेशन शामिल है।
मैं अत्यधिक विशिष्ट पुस्तक: कंप्यूटर प्रोग्राम्स की संरचना और व्याख्या से, विशेष रूप से सीखने की योजना की सिफारिश करता हूं
। यह इन सभी मूल अवधारणाओं का वर्णन करता है। यदि आप इस सामान को जानते हैं, तो नासमझ वाक्य-विन्यास को छोड़कर अन्य भाषाएं बहुत ही सरल प्रतीत होंगी।