8 और 16-बिट माइक्रोकंट्रोलर्स आधारित एम्बेडेड सिस्टम के साथ, यह नीचे आता है सॉफ्टवेयर विकसित करना आसान है जो इन बेहद मामूली भंडारण सीमाओं के सीमित संसाधनों में फिट हो सकता है (शायद कम-अंत 8-बिट माइक्रोकंट्रोलर्स के लिए कुछ 100 बाइट रैम है , रोम या EPROM / कोड भंडारण के लिए फ्लैश के 2-8 KiB के साथ)।
उन मामलों में C या असेंबली जैसी छोटी भाषाएँ सबसे अधिक इस्तेमाल की जाने वाली विकास भाषाएँ हैं। एक बहुत ही मोटे रिश्तेदार तुलना के रूप में, एक पूर्ण कोडांतरक और C99 संकलक एक एकल फ़्लॉपी डिस्क पर फिट हो सकते हैं, जबकि आपको आधुनिक C ++ विकास प्रणाली (STL, आदि के लिए) के लिए कई MiB की आवश्यकता होती है।
जब आप उच्च अंत माइक्रो (उच्च अंत 16-बिट, और ज्यादातर 32-बिट, काफी दुर्लभ 64-बिट के साथ) और डीएसपी को एम्बेडेड वातावरण में देख रहे हैं, तो प्रतिबंध कमजोर पड़ जाते हैं, और सॉफ्टवेयर विकास के विकास को बड़ा कर सकते हैं प्रयास करता है, इसलिए यह सबसे अधिक उत्पादक भाषाओं का उपयोग करने के लिए समझ में आता है, जिसमें ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) भाषाओं जैसे सी ++, और नई भाषाओं (जावा, पर्ल, रूबी, पायथन) जैसी उन्नत भाषाओं के साथ।
असेंबली और सी में यह अनुमान लगाना संभव है कि कितनी मेमोरी का उपयोग किया जा रहा है, ताकि एक स्पेस कंस्ट्रिक्टेड डिज़ाइन संभव हो, लेकिन एडवांस्ड फीचर्स जैसे टेम्प्लेट, अपवाद हैंडलिंग और रन-टाइम बाइंडिंग के लिए आवश्यक मेमोरी फ़ुटप्रिंट को ठीक से जानना असंभव हो जाता है अग्रिम में एक मानक सी ++ प्रोग्राम के लिए। मुझे इस बारे में टिप्पणी करने के लिए MISRA C ++ के बारे में पर्याप्त जानकारी नहीं है , जो C ++ का सबसेट है।
बाईट-कोड (जावा, पर्ल, पायथन) चलाने वाली आभासी मशीनों पर आधारित भाषाएं एम्बेडेड डेवलपर के अनुभव में कम परिपक्व होती हैं, और जैसा कि इन भाषाओं को प्रोग्रामर को विशेष हार्डवेयर से इंसुलेट करने के लिए डिज़ाइन किया गया है, यह भी विवेक का होना अधिक कठिन बनाता है। ऐसे एम्बेडेड हार्डवेयर सिस्टम की सीमाएं और प्रतिबंध। ये MiB के साथ तेज़ 32-बिट प्रोसेसर (उदाहरण के लिए ARMv7) के साथ एक समस्या से कम नहीं है अगर RAM का GiB नहीं है।
1960 के दशक से डार्टमाउथ बेसिक की विरासत से काफी हद तक वास्तविक रूप से वास्तविक रूप से वास्तविक रूप से वास्तविक रूप से वास्तविक रूप से अवगत होने वाले सभी BASIC कार्यान्वयन। इसका मतलब है कि भाषा में कोई जटिल रन-टाइम लाइब्रेरी या अपवाद हैंडलिंग नहीं है, और एक दुभाषिया या कंपाइलर लिखने के लिए काफी सरल है और फ़ाइल आकार में भी छोटा है। अधिकांश माइक्रोकंट्रोलर्स के पास इसके लिए कम से कम एक बेसिक संकलक उपलब्ध है।
मुझे आशा है कि व्यापक स्ट्रोक में कारण आप सी और असेंबली को मुख्य रूप से छोटे या पुराने एम्बेडेड सिस्टम पर उपयोग करते हैं, और नए मध्य से उच्च अंत एम्बेडेड सिस्टम की सीमाओं के साथ पारंपरिक डेस्कटॉप पर्सनल कंप्यूटर से केवल थोड़ा भिन्न होंगे।