কোডিং পিক্সের জন্য কি সি ++ ব্যবহার করা কখনও সম্ভব হবে?
হ্যাঁ, এখনই এটি সম্ভব। ডিএসপিকের জন্য এখানে আইএআর সিস্টেমস সি ++ কম্পাইলার রয়েছে (যদিও এটি খুব পুরানো এবং সমর্থিত নয়)।
আরেকটি বিকল্প হ'ল সি কনভার্টারে সি ++ ব্যবহার করা। প্রাক-বিল্ড পদক্ষেপটি ব্যবহার করে, সি ++ কে সিতে রূপান্তর করুন, তারপরে (ন্যক্কারজনক) সি আপনার সাধারণ সি সংকলককে দিন। এলএলভিএম বা কমো এর সি ++ সংকলকটি দেখুন যা উভয়ই এটি করে। কমেউ কেবলমাত্র 50 ডলার, তবে পুরো সরঞ্জামচইন এবং লাইব্রেরিগুলি সঠিকভাবে কাজ করতে এটি পেতে সম্ভবত কিছু প্রচেষ্টা লাগবে।
এমন কোনও হার্ডওয়্যার সীমাবদ্ধতা রয়েছে যা আমাদের সি ++ ব্যবহার করতে বাধা দেয়?
সংক্ষিপ্ত উত্তর, না, কোনও হার্ডওয়্যার সীমাবদ্ধতা নেই। দীর্ঘ উত্তর, সি ++ অবশ্যই একটি হিপ এবং / বা স্ট্যাকের ব্যবহারকে উত্সাহ দেয়, যা সীমিত র্যামযুক্ত ছোট এমসিইউগুলির সাথে লড়াই করবে।
কেন তারা স্তূপ / স্ট্যাকের সাথে লড়াই করে? দুটি কারণে: ক) অনেক এমসিইউগুলির সীমাবদ্ধ র্যাম রয়েছে, এটি অবশ্যই স্তূপের জন্য যথেষ্ট নয়, এবং স্ট্যাকের জন্য সবে যথেষ্ট। খ) অনেক এমসিইউ পয়েন্টারগুলিকে ভালভাবে পরিচালনা করে না, তাই স্ট্যাকের মধ্যে ভেরিয়েবলগুলির ব্যবহার কার্যকারিতাটিকে হ্রাস করে।
লোকেরা যখন কোনও এমসিইউতে সি ++ ব্যবহারের বিষয়ে জিজ্ঞাসা করে, তখন আমি সি ++ সি এর সাথে তুলনা করা গঠনমূলক মনে করি যে এমসিইউতে সি সম্পর্কে ঠিক একই প্রশ্নগুলি ছিল (এবং এখনও রয়েছে)। লোকেরা এই ধারণাটি নিয়ে ঝাপটায়। 256 বাইট র্যাম এমসিইউতে একটি উচ্চ স্তরের ভাষা ?? অসম্ভব। তবে এখন আমরা সবাই জানি এটি সম্ভব। আমি একটি PIC12 এর জন্য সি লিখেছি। সমস্যা নেই. এটি সম্ভব হয়েছে কারণ এ) সফ্টওয়্যার বিকাশকারীরা জানেন যে তাদের কিছুটা সতর্কতা অবলম্বন করতে হবে: ম্যালোক () ইত্যাদি ব্যবহার করবেন না এবং বি) সংকলকটি বিশেষত এমসইউয়ের জন্য লেখা হয়েছে। সংকলক মেমরি বরাদ্দের সাথে অতিরিক্ত সতর্কতা অবলম্বন করবে, এটি একটি গাদা তৈরি করার চেষ্টা করবে না এবং একটি স্ট্যাক তৈরি নাও করতে পারে। কিছু সি সংকলক কেবল আপনাকে পুনরায় প্রবেশকারী (পুনরাবৃত্ত) কোড লিখতে দেয় না যা একেবারে স্ট্যাকের প্রয়োজন।
এমসিইউয়ের জন্য সি লিখতে সম্ভব তা জেনেও একই উত্তরগুলি এমসইউতে সি ++ লেখার প্রশ্নে প্রযোজ্য। সংকলক যতক্ষণ না লক্ষ্য ডিভাইসের সীমাবদ্ধতা বুঝতে পারে এবং ব্যবহারকারী ভাষাটিও বোঝে ততক্ষণ সত্যিই কোনও সমস্যা নেই। সি ++ এ আপনি যা ব্যবহার করেন তার জন্য কেবল অর্থ প্রদান করুন। সি ++ (অবজেক্টস এবং সমস্ত কিছু সহ) রচনা করা পুরোপুরি সম্ভব যা আপনি যদি সি ব্যবহার করতেন তবে সঠিক asm আউটপুট তৈরি করে produces
এখন, PIC32 গুলি অবশ্যই C ++ এর সাথে লড়াই করতে পারে। তাদের 64৪ কেবি র্যাম রয়েছে এবং এটি এমআইপিএস কোর-এর উপর ভিত্তি করে রয়েছে, যা সঠিকভাবে বেড়ে ওঠা 32-বিট প্রসেসর। এটি পয়েন্টার এবং স্ট্যাকের পাশাপাশি একটি পিসি নিয়ে কাজ করতে পারে। প্রকৃতপক্ষে, এমআইপিএসের ভিত্তিতে পিসি রয়েছে (বা কমপক্ষে সেখানে ব্যবহৃত হত)।
দুঃখের বিষয়, সি ++ এর আশেপাশে অনেক ভুল বোঝাবুঝি হচ্ছে। এমনকি খুব অভিজ্ঞ কোডারদের মনে হয় যে ভাষাটি কীভাবে কাজ করে। এম্বেড থাকা সিপিইউগুলিতে কেন সি ++ উপযুক্ত তা সম্পর্কে আমার উত্তর দেখুন ।
যখন আমরা C এর পরিবর্তে C ++ ব্যবহার করি তখন প্রোগ্রামটির উত্পন্ন .hex ফাইলের আকার এবং চলমান সময়ের পরিমাণ কত বৃদ্ধি পায়?
আমি যেমন বলেছি, কোনও পার্থক্য নাও থাকতে পারে। বেশিরভাগ ক্রিয়াকলাপের জন্য সময় এবং স্থানের পারফরম্যান্সের তুলনা করতে বাজার্ন স্ট্রস্ট্রপ একগুচ্ছ সি / সি ++ সংকলকগুলির সাথে তুলনা করেছিলেন। ফলাফল ব্যাপকভাবে বিচিত্র। কিছু ক্ষেত্রে, সি ++ আস্তে আস্তে এবং আরও বড় আকারে বেরিয়েছে, কিছু ক্ষেত্রে ধীর এবং ছোট, বা দ্রুত এবং বৃহত্তর, এবং আরও দ্রুত এবং আরও ছোট হয়েছে! সুতরাং, আপনার প্রশ্নের উত্তর হ'ল এটি সংকলকটির উপর অনেক বেশি নির্ভর করে তবে সাধারণভাবে, এটির কোনও পার্থক্য করা দরকার। আরও বিশদের জন্য, সি ++ পারফরম্যান্সের প্রযুক্তিগত প্রতিবেদনটি দেখুন
এ নিয়ে কি ভবিষ্যতের কোন পরিকল্পনা বা চলমান উন্নয়ন আছে?
যে আমি জানি না। আমি জানি না যে মাইক্রোচিপ সি 32 সংকলকটি খোলা স্রোসযুক্ত এবং আপনি উত্সটি ডাউনলোড করতে পারেন। আমি আরও জানি যে যার সাথে আমি কাজ করেছি সে অনলাইনে কিছু নির্দেশাবলী খুঁজে পেয়েছিল এবং সি ++ কোড সংকলনের জন্য সংকলকটি পরিচালনা করতে সক্ষম হয়েছিল। তবে তিনি আমাকে একটি উপযুক্ত সরঞ্জাম চেইন স্থাপন করতে সক্ষম হওয়ার আগে তিনি সংস্থাটি ত্যাগ করেছিলেন।
হালনাগাদ
মাইক্রোচিপটিতে এম্বেড এমসিইউগুলির তার পিআইসি 32 পরিসরের জন্য একটি সি ++ সংকলক উপলব্ধ।