अधिकतर यह एक संयोग है।
प्रोग्रामिंग भाषाएं समय के साथ विकसित हुई हैं, और संकलक और दुभाषियों की तकनीक में सुधार हुआ है। अंतर्निहित प्रसंस्करण (यानी संकलन समय, ओवरहेड ओवरहेडिंग, निष्पादन समय आदि) की दक्षता भी कम महत्वपूर्ण नहीं है क्योंकि मुख्यधारा के कंप्यूटिंग प्लेटफॉर्म सत्ता में विकसित हुए हैं।
भाषा वाक्य रचना करता है , उदाहरण के लिए, पास्कल बहुत सावधानी से तो यह एक भी पास संकलक इस्तेमाल कर सकते हैं डिजाइन किया गया था - - स्रोत से अधिक यानी एक पास और आप excutable मशीन कोड है एक प्रभाव हो। दूसरी ओर एडा ने इस पर कोई ध्यान नहीं दिया, और एडा कंपाइलर्स को लिखने के लिए बेहद मुश्किल है - एक से अधिक पास की आवश्यकता होती है। (एक बहुत अच्छा अडा कंपाइलर जो मैंने कई साल पहले इस्तेमाल किया था वह एक 8 पास कंपाइलर था। जैसा कि आप कल्पना कर सकते हैं, यह बहुत धीमा था।)
यदि आप फोरट्रान (संकलित) और बुनियादी (संकलित या संकलित) जैसी पुरानी भाषाओं को देखते हैं, तो उनके पास बहुत सख्त वाक्यविन्यास और शब्दार्थ नियम हैं। [मूल के मामले में, पुराने बिलिक नहीं हैं, आपको मूल से पहले वापस जाने की आवश्यकता है।]
दूसरी ओर, एपीएल (मस्ती का एक गुच्छा) जैसी अन्य पुरानी चीजों को देख रहे हैं, इस प्रकार की गतिशील टाइपिंग थी। यह आमतौर पर व्याख्यायित भी होता था लेकिन संकलित भी किया जा सकता था।
लीनियर सिंटैक्स एक कठिन है - अगर इसका मतलब है कि आपके पास ऐसी चीजें हैं जो वैकल्पिक हैं या इसका अनुमान लगाया जा सकता है तो इसका मतलब है कि भाषा में पर्याप्त समृद्धि है कि इसे कुंद किया जा सकता है। तब फिर से, BASIC ने कई साल पहले जब "LET" कथन वैकल्पिक हो गया था!
अब आपके द्वारा देखे जाने वाले कई विचार (उदाहरण के लिए, टाइपलेस या डायनेमिक टाइपिंग) वास्तव में बहुत पुराने हैं - पहली बार 1970 या 1980 के दशक में प्रदर्शित हुए। जिस तरह से उनका उपयोग किया जाता है, और इन विचारों को जिस भाषा में उपयोग किया जाता है वह बदल गया है और बढ़ गया है। लेकिन मौलिक रूप से, व्हाट्स न्यू का वास्तव में पुराना सामान नए कपड़े पहने हुए है।
यहाँ मेरे सिर के ऊपर से कुछ उदाहरण हैं:
- एपीएल: डायनेमिक टाइपिंग। आम तौर पर व्याख्या की गई। 1960/1970 के दशक से आया था।
- बुनियादी: मजबूत या गतिशील टाइपिंग। व्याख्या या संकलित। 1970 और कई परे।
- फोरट्रान: मजबूत टाइपिंग। संकलित। 1960 या उससे पहले का।
- Algol68: मजबूत टाइपिंग। संकलित। 1960।
- पीएल / 1: मजबूत टाइपिंग। संकलित। 1960।
- पास्कल: मजबूत टाइपिंग। संकलित। 1970। (लेकिन 1980 के दशक में P-System कंपाइलर JIT कंपाइलर के समान थे!)
- डीईसी द्वारा शुरुआती दिनों में फोरट्रान और अन्य के कुछ कार्यान्वयन आंशिक रूप से संकलित और आंशिक रूप से व्याख्या किए गए थे।
- स्मालटाक: डायनामिक टाइपिंग। बाइटकोड का संकलन जो व्याख्यायित है। 1980।
- प्रोलॉग: अधिक विचित्रता। कार्यात्मक। संकलित (टर्बो प्रोलोग, कोई भी?)। 1980।
- सी: मजबूत (हा हा) टाइपिंग। संकलित। 1960's..today।
- Ada: uber-strong टाइपिंग। संकलित। 1980।
- पर्ल: डायनेमिक टाइपिंग। (मजबूत वाक्यविन्यास)। व्याख्या की। 1990 (?)।
मैं जा सकता था।
- नाइटपिकर कॉर्नर: जिस समय स्रोत लोड / रीड-इन होता है, उस समय कई व्याख्या की गई भाषाओं को टोकन या "बाइट संकलित" किया जाता है। यह दुभाषिया के बाद के ऑपरेशन को बहुत सरल बनाता है। कभी-कभी आप कोड के बाइट-संकलित संस्करण को सहेज सकते हैं। कभी-कभी आप नहीं कर सकते। इसकी फिर भी व्याख्या की।
अपडेट: क्योंकि मैं पर्याप्त स्पष्ट नहीं था।
टाइपिंग व्यापक रूप से भिन्न हो सकती है।
संकलन-समय निश्चित स्थिर टाइपिंग आम है (उदाहरण के लिए, C, Ada, C ++, Fortan, आदि)। यह वह जगह है जहाँ आप एक प्रकार की बात की घोषणा करते हैं और यह हमेशा के लिए इस तरह है।
डायनामिक टाइपिंग करना भी संभव है, जहां चीज़ उस प्रकार को चुनती है जो उसे सौंपा गया है। उदाहरण के लिए, PHP और कुछ प्रारंभिक BASIC, और APL, जहां आप एक पूर्णांक को एक चर में असाइन करेंगे और तब से यह पूर्णांक प्रकार था। यदि आपने बाद में इसे एक स्ट्रिंग सौंपी, तो यह एक स्ट्रिंग प्रकार था। और इसी तरह।
और फिर ढीली टाइपिंग है, उदाहरण के लिए PHP जहां आप सही मायने में विचित्र चीजें कर सकते हैं जैसे कि एक संख्यात्मक पूर्णांक (उद्धृत, इसलिए इसकी एक स्ट्रिंग) को एक चर में असाइन करें और फिर इसमें एक संख्या जोड़ें। (उदाहरण के लिए '5' + 5 का परिणाम 10 होगा)। यह विचित्र की भूमि है, लेकिन कई बार बहुत उपयोगी भी है।
कैसे ये एक भाषा में डिज़ाइन की गई विशेषताएं हैं। कार्यान्वयन सिर्फ ऐसा होता है।