বিধানসভার উপর সি ব্যবহারের কিছু সুবিধা / অসুবিধাগুলি কী? [বন্ধ]


15

আমি বর্তমানে টেলিকমিউনিকেশন এবং ইলেকট্রনিক্সে ইঞ্জিনিয়ারিং অধ্যয়ন করছি এবং আমরা মাইক্রোপ্রসেসর প্রোগ্রামিংয়ে এসেম্বলার থেকে সিতে স্থানান্তরিত হয়েছি। আমার সন্দেহ আছে যে এটি একটি ভাল ধারণা। সমাবেশের তুলনায় সি এর কিছু সুবিধা এবং অসুবিধা কী কী?

আমি যে সুবিধা / অসুবিধাগুলি দেখছি তা হ'ল:

সুবিধাদি:

  • আমি বলতে পারি যে এস সিনেমার সিনট্যাক্সের চেয়ে সি সিনট্যাক্স শেখা অনেক সহজ।
  • আরও জটিল প্রোগ্রাম তৈরির জন্য সি ব্যবহার করা সহজ।
  • এসেম্বলারের চেয়ে সি এর আশেপাশে আরও বেশি বিকাশমান স্টাফ রয়েছে বলে এসেমব্লার শিখার চেয়ে ল সি সি একরকম বেশি উত্পাদনশীল।

অসুবিধা:

  • এসেম্ব্লার সি এর তুলনায় নিম্ন স্তরের প্রোগ্রামিং ল্যাঙ্গুয়েজ, সুতরাং এটি সরাসরি হার্ডওয়্যারে প্রোগ্রামিং করার জন্য ভাল করে তোলে।
  • মেমরি, ইন্ট্রিপ্টস, মাইক্রো-রেজিস্টার ইত্যাদির সাহায্যে আপনাকে কাজ করার জন্য আরও অনেক নমনীয় Is

17
আহ ... নতুন শতাব্দীতে আপনাকে স্বাগতম welcome আপনি এটি এখানে পছন্দ করবেন। আমরা চলমান মাইক্রোকন্ট্রোলারের আছে .NET , জাভা , লিনাক্স , এবং এমনকি মানুষ ব্যবহার পাইথন প্রোগ্রাম ছবি
জেডজেআর

@ জেডজেআর আপনি একটি পিআইসি প্রোগ্রাম করতে পাইথনকে কীভাবে ব্যবহার করবেন? কোন পিক?
অবধি

2
@ তাত্পর্যপূর্ণভাবে এটি সম্পূর্ণ অজগর নয়, মূলটির একটি উপসেট। আপনি যদি চান তবে নিয়ামক কার্যকারিতার উপরে পাইথন সিনট্যাক্সের একটি কোটপাইস্ট্রা হ'ল প্রথম উদাহরণটি আমি আবার গুগল করেছি, তবে আমার মনে আছে অন্যরকম ডকস পড়েছি, এটি এটিএমএলও করেছে।
জেডজেআর

4
সত্যি কথা বলতে কি, আধুনিক প্রসেসরের জটিলতার সাথে আমি অবাক হব যদি অনেক প্রোগ্রামার আধুনিক সি সংকলক যেভাবেই তৈরি করতে পারে তার চেয়ে শক্ত, আরও দক্ষ এসেমব্লার লিখতে পারতেন। আমি উদাহরণস্বরূপ এসেম্বলারের একটি ইপিক আর্কিটেকচার সিপিইউ প্রোগ্রাম করার চেষ্টা করতে ঘৃণা করব - মেল ঠিক ইটানিয়ামের সাথে ঘরে থাকবে । * 8 ')
মার্ক বুথ

5
@ZJR এই নতুন শতাব্দীটি উত্তেজনাপূর্ণ মনে হচ্ছে! আমি কৌতূহলবশত, মাইক্রোকন্ট্রোলারদের জন্য .NET রানটাইম, জাভা ভিএম এবং লিনাক্স কোন ভাষায় লিখিত ছিল? হিসাবে, প্রকৃত মাইক্রোকন্ট্রোলার প্রোগ্রামিং কোন ভাষায় করা হয়েছিল? ওহ ... সি বা এই শতকেও

উত্তর:


17

এখানে কিছু স্ট্যাক ওভারফ্লো উত্তর যা আপনাকে সহায়তা করতে পারে (এগুলি শীর্ষ প্রতিক্রিয়া, স্বীকৃত উত্তর):

সুবিধাদি

/programming/143561/is-there-a-need-to-use-asocolate-these-days (কেবল 10K ব্যবহারকারীদের জন্য), বা সংরক্ষণাগার

  • বুটলোডার শুরুর প্রথম পর্যায়ে অ্যাসেম্বলি ব্যবহার করা হয়। যখন স্ট্যাকের সিপিইউ শক্তিগুলি উপলব্ধ না হয় এবং স্ট্যাকের মধ্যে জিনিসগুলি সংরক্ষণের চেষ্টা থেকে সি সংকলককে রাখা শক্ত। বুটলোডারের বেশিরভাগ অংশ তবুও সিতে লেখা হয়, একবার প্রাথমিক সূচনা সম্পন্ন হওয়ার পরে।
  • অ্যাসেম্বলিটি মুটেক্স লকিং আদিমগুলি লিখতে ব্যবহৃত হয়। প্রয়োজনীয় জায়গাগুলিতে মেমরি বাধা নির্দেশগুলি নির্গমন করতে সি সংকলক পাওয়া মূলত অসম্ভব।
  • মেমসেট () বা মেমকি () এর মতো রুটিনগুলি প্রায়শই সমাবেশে করা হয়। উদাহরণস্বরূপ, আমি একটি বড় অনিবন্ধিত লুপ সহ একটি মেমসেট () লিখেছিলাম, যা একটি চূড়ান্ত পুনরাবৃত্তির জন্য সেই লুপটির মাঝখানে লাফ দেওয়ার জন্য একটি শাখা ঠিকানা গতিশীলভাবে গণনা করে। এসি রুটিনে অতিরিক্ত আই-মিস না করে আরও কোড তৈরি করা হত। তেমনি, সিপিইউ নির্দেশিকা সেটগুলিতে প্রায়শই ক্যাশে লাইন লোড বা অন্যান্য নির্দেশাবলী অন্তর্ভুক্ত থাকে যা নাটকীয়ভাবে মেমকিপি () কে গতি দিতে পারে, যা সি সংকলক ব্যবহার করবে না।

অসুবিধেও

/programming/2684364/why-arent-programs-written-in-assembly-more-often

  • এএসএমের স্বল্প উচ্চতা রয়েছে এবং উচ্চ-স্তরের ভাষার তুলনায় এটি সত্যই রক্ষণাবেক্ষণযোগ্য নয়।
  • এছাড়াও, অন্যান্য জনপ্রিয় ভাষার চেয়ে সি এর মতো অনেক কম এএসএম বিকাশকারী রয়েছে C.
  • তদুপরি, আপনি যদি উচ্চ স্তরের ভাষা ব্যবহার করেন এবং নতুন এএসএম নির্দেশাবলী উপলভ্য হয়ে যায় (উদাহরণস্বরূপ এসএসই), আপনার কেবলমাত্র আপনার সংকলকটি আপডেট করতে হবে এবং আপনার পুরানো কোডটি সহজেই নতুন নির্দেশাবলীর ব্যবহার করতে পারে।

উদাহরণ

নীচের সর্বশেষ পোস্টটি একটি স্ট্যাক ওভারফ্লো পোস্টটি একটি দৃশ্যের রূপরেখা হিসাবে দেখায় যা একটি সমাবেশের উদাহরণ দেখায় যা সি এর চেয়ে দ্রুত (একই ফাংশন সম্পাদন করার সময়) দ্রুত হয়।

/programming/577554/when-is-assembler-faster-than-c


20
  • অ্যাসেম্বলির তুলনায় সি প্রোগ্রামিং করা সহজ। পুনরায় সংশোধন করার উপযুক্ত নয় এমন স্পষ্ট কারণ রয়েছে।

  • ব্যবহার করা সহজ হওয়ায় সি আপনাকে প্রোগ্রামগুলি দ্রুত লেখার অনুমতি দেয়। সাধারণত এই প্রোগ্রামগুলি ডিবাগ করা সহজ এবং বজায় রাখা সহজ। তদুপরি, সি-তে বৃহত্তর, জটিল প্রোগ্রামগুলি পরিচালনা করা সহজ easier

  • প্রায়শই, একটি সংকলক দ্বারা উত্পন্ন কোড হস্তচালিত এসেম্ব্লারারের মতো সমানভাবে (গতি এবং দক্ষতার নিরিখে) ভাল হয় - তবে ভাল।

  • সি বেশ নিম্ন স্তরের রঙিন এবং এটি বিরল যে আপনি অনেক নীচে যেতে চাইবেন। বিমূর্তনের একটি অতিরিক্ত স্তর থাকা খুব কমই খারাপ জিনিস।

  • যখন আপনাকে নীচে যেতে হবে, আপনি অ্যাসেম্বলি ব্যবহার করতে পারেন, অন্যথায় আপনি সি ব্যবহার করতে পারেন

  • আপনি সি-কোডে এসেম্বলি লিখতে পারেন, তবে এসেম্বলি-কোডে সি নয়।


6
আমি বলব, আপনি যখন দেখতে পাবেন যে সি সংকলক অপ্টিমাইজড মেশিন কোডটি আপনার হাতের লিখিত সমাবেশ কোডের চেয়ে ভাল
ব্যবহারকারী

@ ক্রুশযুক্ত - 90 এর দশকের মাঝামাঝি থেকে এই ইতিমধ্যে একটি সাধারণ (এবং সাধারণত ন্যায়সঙ্গত) দাবি ছিল। একটি সংকলক নির্ভরযোগ্যভাবে এবং পদ্ধতিগতভাবে অপ্টিমাইজেশন প্রয়োগ করে - যখন সুযোগটি লক্ষ্য করে তখনই তা নয়।
স্টিভ 314

15

এসি প্রোগ্রামটি বিভিন্ন মাইক্রোপ্রসেসর আর্কিটেকচারে সংকলন করা যায়।


4

আমরা মাইক্রোপ্রসেসর প্রোগ্রামিংয়ে এসেম্বেলার থেকে সিতে স্থানান্তরিত হয়েছি। আমার সন্দেহ আছে যে এটি একটি ভাল ধারণা

ভয় পাবেন না, কেউ আর 100% এসেম্বলারের মধ্যে নতুন প্রোগ্রাম বিকাশ করে না। আজকাল, সি অতি ক্ষুদ্রতম, কৃপণতম 8-বিট আর্কিটেকচারের জন্যও ব্যবহার করা যেতে পারে। যাইহোক , কিছু এসেমব্লার জেনে যাওয়া আপনাকে উল্লেখযোগ্যভাবে উন্নত সি প্রোগ্রামার করে তোলে। এছাড়াও, প্রোগ্রামে সর্বদা কিছু ছোট বা দুটি বিবরণ থাকে যা এসেম্বলারে লিখতে হবে।

আমি বলতে পারি যে এস সিনেমার সিনট্যাক্সের চেয়ে সি সিনট্যাক্স শেখা অনেক সহজ।

হ্যাঁ সিনট্যাক্স অবশ্যই সহজ। যাইহোক, সমস্ত বিরক্তিকর বিবরণ সহ পুরো সি ভাষা শেখা একটি নির্দিষ্ট সমাবেশকারীর সমস্ত বিবরণ শেখার চেয়ে অনেক জটিল। সি অনেক বড় এবং বিস্তৃত ভাষা। তবে তারপরে আবার আপনার সমস্ত বিবরণ শিখতে হবে না।

আরও জটিল প্রোগ্রাম তৈরির জন্য সি ব্যবহার করা সহজ।

প্রকৃতপক্ষে, সি মডিউলার প্রোগ্রাম ডিজাইনের জন্য যেমন এনক্যাপসুলেশন এবং স্থানীয় স্কোপস / স্থানীয় ভেরিয়েবলগুলির ব্যবস্থা করে। এবং সি এর একটি স্ট্যান্ডার্ড গ্রন্থাগার রয়েছে, এর সাথে গত 30 বছরে প্রচুর সংখ্যক সংস্থান লিখিত রয়েছে। এবং সবচেয়ে গুরুত্বপূর্ণ, সি পোর্টেবল হয়।

এসেম্বলারের চেয়ে সি এর আশেপাশে আরও বেশি বিকাশমান স্টাফ রয়েছে বলে এসেমব্লার শিখার চেয়ে ল সি সি একরকম বেশি উত্পাদনশীল।

সিতে প্রচুর প্রাক-তৈরি কার্যকারিতা, গ্রন্থাগার এবং সংস্থান রয়েছে, তাই চাকাটির পুনরায় উদ্ভাবন কম হবে। তবে তা বাদে আপনার বক্তব্য বিষয়বস্তু। আমি বিশ্বাস করি এটি ব্যক্তিগত পছন্দের বিষয়।

উদাহরণস্বরূপ, আমি একটি অভিজ্ঞ সি প্রোগ্রামার, মাঝে মাঝে সি ++ প্রোগ্রামিং করি। আমি নিজেকে সি ++ তে অনেক কম উত্পাদনশীল বলে মনে করি কারণ আমি সেই ভাষাটিও জানি না পাশাপাশি আমি সিও জানি just একজন অভিজ্ঞ সি ++ প্রোগ্রামারের অবশ্যই বিপরীত মতামত থাকবে।

এবং "উত্পাদনশীল" এর অনেক দিক রয়েছে। একটি খুব গুরুত্বপূর্ণ দিকটি রক্ষণাবেক্ষণের সময় এবং বিশেষত রক্ষণাবেক্ষণের দ্বারা প্রেরিত বাগগুলি ঠিক করতে সময় লাগে। সি এসেম্বলারের চেয়ে বজায় রাখা অনেক সহজ।

এসেম্ব্লার সি এর তুলনায় নিম্ন স্তরের প্রোগ্রামিং ল্যাঙ্গুয়েজ, সুতরাং এটি সরাসরি হার্ডওয়্যারে প্রোগ্রামিং করার জন্য ভাল করে তোলে।

হার্ডওয়্যার প্রোগ্রামিং উভয় ভাষায় সরাসরি করা যায়। সি-তে কেবলমাত্র আপনি যা করতে পারবেন না তা হ'ল সিপিইউ কোরের স্ট্যাক পয়েন্টার এবং শর্ত রেজিস্টার ইত্যাদি অ্যাক্সেস করা। সুতরাং যদি হার্ডওয়্যার প্রোগ্রামিংয়ের মাধ্যমে আপনি নিজের সিপিইউ দিয়ে কথা বলতে চান, তবে হ্যাঁ, এসেম্বলার সি এর চেয়ে কিছুটা বেশি মঞ্জুরি দেয় যদি আপনি বোঝাতে চান বাহ্যিক হার্ডওয়্যার অ্যাক্সেস করা হয় তবে এসেম্বলারের সি এর চেয়ে কোনও লাভ নেই তবে সম্ভবত অসুবিধাগুলি, কারণ এটি লিখতে প্রায়শই কঠিন জেনেরিক সি কোডের চেয়ে নির্দিষ্ট বাহ্যিক ডিভাইসের জন্য জেনেরিক এসেম্বলার কোড।

মেমরি, ইন্ট্রিপ্টস, মাইক্রো-রেজিস্টার ইত্যাদির সাহায্যে আপনাকে কাজ করার জন্য আরও অনেক নমনীয় Is

এটি সঠিক নয়। সি আপনাকে সেগুলিও করতে দেয়, যদিও আপনাকে বিঘ্নিত কীওয়ার্ডের মতো সংকলক-নির্দিষ্ট সি কোডের উপর নির্ভর করতে হতে পারে।


শেষ অবধি, আপনাকে এমসিইউগুলি প্রোগ্রাম করার জন্য দুটি ভাষা শিখতে হবে, সি এর সাথে জোর দেওয়া with


আরও কিছু আরকেন মেশিন ভাষার তুলনায় কীভাবে পুরো সি ভাষা জটিল? উভয়ই সম্পন্ন করার পরে, আমার মনে হয় লাইব্রেরিগুলি ছাড়া সি যথেষ্ট কম জটিল। আপনি যদি সি স্ট্যান্ডার্ড লাইব্রেরি উল্লেখ করছেন, আপনার দরকারী কিছু করার জন্য এসেম্বলারের মধ্যেও এর মতো কিছু দরকার। সি একটি বৃহত্তর এবং বিস্তৃত ভাষা হতে পারে, তবে আপনাকে এটিকে একই স্তরের বিশদ জানার দরকার নেই। a = b[i] + c;লোড করার নির্দেশাবলী b[i](যা গণনা নেয়) এবং cরেজিস্টারগুলিতে (যা অবশ্যই উপলব্ধ করা উচিত) যোগ করা, এবং সঞ্চয় করার চেয়ে অনেক কম জটিল ।
ডেভিড থর্নলি

1
@ ডেভিডথর্নলি সি সম্পর্কে যত বেশি শিখবেন ততই আপনি বুঝতে পারবেন যে এটি কতটা জটিল। আপনি কি শত শত অপরিজ্ঞাত / অনির্দিষ্ট / ইমপ্লিট-সংজ্ঞায়িত আচরণের মামলাগুলি জানেন? আপনি কি সমস্ত অন্তর্নিহিত ধরণের প্রচারের নিয়মগুলি বিশদ (পূর্ণসংখ্যা প্রচারগুলি, সাধারণ গাণিতিক রূপান্তরগুলি) সম্পর্কে জানেন? টাইপ স্পেসিফায়ার সম্পর্কিত সমস্ত অদ্ভুত নিয়ম এবং বাক্য গঠন? অ্যারে পয়েন্টার সহ স্ট্যাটিক / ডায়নামিক মাল্টি-ডাইমেনশনাল অ্যারেগুলির বিভিন্ন রূপগুলি (অ্যারের 1 ম এলিমেন্টের সাথে পয়েন্টার দিয়ে বিভ্রান্ত হওয়ার দরকার নেই) C99 এবং C11 এর সমস্ত বৈশিষ্ট্য? ইত্যাদি।

1
@ লন্ডিন: সি সম্পর্কে যা গুরুত্বপূর্ণ তা হল আপনি এই সমস্ত প্রশ্ন জিজ্ঞাসা করতে এবং সুনির্দিষ্ট উত্তরগুলি সন্ধান করতে সক্ষম হলেন। মান অনুসারে সংকলকগণ 62 টি ("শত" নয়) বাস্তবায়ন-সংজ্ঞায়িত আচরণগুলির জন্য কীভাবে আচরণ করেন তা নথিভুক্ত করতে হবে। সমাবেশের নিখুঁত সরলতা এটিকে আপনার নিজের-মধ্যাহ্নভোজনের প্রস্তাব দেয়, যা সি আপনার নিজের কোডে জটিলতাগুলি অফলোড করে। আপনার দেওয়া আর্কিটেকচারের জন্য সমাবেশে কতগুলি ভাসমান-পয়েন্ট লাইব্রেরি সমাবেশে রচিত হয়েছে এবং কেন তাদের আচরণ বাস্তবায়ন-সংজ্ঞায়িত তা জিজ্ঞাসা করে আমি আপনার যুক্তি মোকাবিলা করতে পারি।
ব্লারফ্লার

1
@ লন্ডিন: ২ হ'ল জিসিসি ম্যানুয়ালটির ৪ ধারায় তালিকাভুক্ত সংকলক সংজ্ঞায়িত আচরণের সংখ্যা। লাইব্রেরি-সংজ্ঞায়িত কী তা বাইরে রেখে আপেল থেকে আপেল তুলনা তৈরি করে যেহেতু সমাবেশের জন্য কোনও স্ট্যান্ডার্ড গ্রন্থাগার নেই। নথির প্রয়োজনীয়তাটি §J.3 এর প্রথম বাক্য। সিসি 89 অনুমোদনের পরে জিসিসি এবং মুষ্টিমেয় বাণিজ্যিক সংকলকগুলিকে আমি কিনেছি বা ব্যবহার করেছি (ইন্টেল, সান, আইবিএম, পোর্টল্যান্ড গ্রুপ) ডকুমেন্ট, সুতরাং আপনার "বেশিরভাগ" যে বিরক্ত হয় না তারা নিজেকে অনুসারী বলতে পারে না। স্ট্যান্ডার্ডের কথা বললে, এটিএন্ডটি টি সিনট্যাক্স সহ কোনও এসেম্বলারের উপর ইন্টেল সিনট্যাক্স সহ x86 লিখে কীভাবে আপনার জন্য কাজ করে?
ব্লারফ্লার

1
@ লন্ডিন: আমার গাড়ি দুর্দান্ত, ধন্যবাদ স্টিয়ারিং হুইল, এক্সিলারেটর, ব্রেক, ক্লাচ এবং টার্ন সিগন্যাল ডাঁটা সবই স্ট্যান্ডার্ড জায়গায় রয়েছে, স্ট্যান্ডার্ড আচরণ রয়েছে এবং অন্যান্য নিয়ন্ত্রণগুলি সমস্ত পরিষ্কারভাবে আইএসও-স্ট্যান্ডার্ড চিহ্ন সহ চিহ্নিত করা হয়েছে। বিনোদন সিস্টেম, এইচভিএসি, এনএভি, ক্রুজ নিয়ন্ত্রণ ইত্যাদি বাস্তবায়ন-সংজ্ঞায়িত সমস্ত জিনিস গ্লোভ বগিতে একটি ফ্যাট বইতে নথিভুক্ত করা হয়। সমাবেশটি আমার 1973 এর প্লাইমাউথের মতো: এটির তেমন কিছুই ছিল না, তবে কাঁচা ফর্মে এটি এখন আর যা চালাচ্ছি তার মতো সক্ষমতার কাছাকাছি কোথাও ছিল না। সমাবেশও একইভাবে; জটিলতাটি আপনি এতে যুক্ত করেন তাতে আসে।
blrfl

1

আপনাকে কীভাবে এম্বেড করা দরকার তা নির্ভর করে সি বড়, ধীর প্রোগ্রাম তৈরি করতে চলেছে। যা লক্ষণীয়ভাবে পণ্যটির সেই অংশটির ব্যয় বাড়িয়ে তুলবে। সামগ্রিক পণ্যটির জন্য এটি সমুদ্রের এক ফোটা হতে পারে বা পণ্যকে আমূল পরিবর্তন করতে পারে। হ্যাঁ, কেউ কেউ বলতে পারে যে সফ্টওয়্যার বিকাশ এবং রক্ষণাবেক্ষণের প্রচেষ্টাগুলি সস্তা, আবার এটি সত্য বা মিথ্যা হতে পারে, যদি এটি গভীরভাবে এম্বেড করা হয় এবং এমন একটি অংশের জন্য লক্ষ্য করে যা নিম্ন শক্তি, ছোট এবং সস্তা আপনি খুব বেশি কোড সম্পর্কে কথা বলছেন না। এই কোডটি বেশিরভাগই সেই বিক্রেতার সাথে নির্দিষ্ট বা সেই নির্দিষ্ট চিপটি সি তে থাকায় শূন্য পোর্টেবিলিটি সুবিধা রয়েছে, আপনাকে অবশ্যই প্রতিটি লক্ষ্য পূর্বে পুনর্লিখন করতে হবে। এআরএমের কর্টেক্স-এম সিরিজের সাথে আমরা এখনই সিটি asm এর সাথে প্রতিযোগিতা করতে সক্ষম হতে শুরু করেছি, ভাবেন যে তাদের এমবেডেড পণ্যগুলিতে সি বা অন্যান্য উচ্চ স্তরের ভাষা ব্যবহার করা হয়নি,

সি বনাম এএসএম বিতর্ক, পেশাগতভাবে সর্বদা এটিকে সিতে লিখতে সিদ্ধ করে তোলে এবং এএসএম ব্যবহার করুন যেখানে আপনি এটি সমর্থন করতে পারেন। এবং আপনি এটি ন্যায়সঙ্গত করতে পারেন। এম্বেড করা বিশ্বে কর্মক্ষমতা এবং আকার রয়েছে।

আপনাকে এই আলোচনায় লক্ষ্য অন্তর্ভুক্ত করতে হবে। যদিও অনেকে মাইক্রোচিপ (পুরানো ছবিগুলি, পিক 32 নয় যা মাইপস) এর সাথে সি ব্যবহার করেছেন, এটি সংকলকগুলির জন্য একটি ভয়ঙ্কর নির্দেশিকা সেট, খুব শিক্ষামূলক এবং আকর্ষণীয় নির্দেশিকা সেট কিন্তু বন্ধুত্বপূর্ণভাবে সংকলক। msp430, এভিআর, আর্ম, থাম্ব, মিপস, সমস্ত সংকলকগুলির জন্য ভাল। 8051 খারাপও।

ভাষার চেয়েও বেশি সরঞ্জাম। কোডগুলি বিকাশ এবং পরিচালনা সম্পর্কে উদ্বিগ্ন হওয়াগুলি সেই ক্ষেত্রে এসপি আপনার আজ এবং আগামীকাল উপস্থিত থাকার জন্য সরঞ্জাম প্রয়োজন। একটি একক উত্স সরঞ্জাম, এমনকি একটি গ্রুপ দ্বারা পরিচালিত একটি একক জিসিসি মোড সহ, ব্যবসায়ের দৃষ্টিকোণ থেকে ঝুঁকিপূর্ণ। আপনি সম্ভবত একাধিক এসেমব্লারার খুঁজে পেতে পারেন এবং সেই দলে থাকার যোগ্য যে কেউ সাপ্তাহিক ছুটিতে একটি এসেম্বলারকে চাবুক মারতে পারে (যতক্ষণ আপনি যে সমাবেশটি লিখেন ততক্ষণ ঘি হুইজ নির্দেশনা এবং ম্যাক্রো খুশি নয়)। এএসএম এবং সি উভয়ের জন্যই আপনি ওপেন সোর্স সরঞ্জামগুলি (বা আপনার নিজের বাড়ির সরঞ্জামগুলিতে) ব্যবহার করতে চান যেখানে আপনি আরও ভাল সুযোগ পাচ্ছেন, এমনকি যদি এটি 10 ​​বছরের পুরানো লিনাক্স ডিস্ট্রো চালানোর জন্য ভার্চুয়াল মেশিন ব্যবহার করে, তার জন্য সরঞ্জাম উপলব্ধ থাকে পণ্য জীবন।

নীচের লাইনটি আবার, সি এবং এএসএম উভয়ই ব্যবহার / শিখুন / শেখান, সি দিয়ে শুরু করুন এবং যেখানে আপনি এটিকে ন্যায্যতা দিতে পারেন ততক্ষণ asm ব্যবহার করুন।


এই যুক্তিগুলি আমার কাছে পুরানো sound যদি আপনি একটি আধুনিক সংকলক ব্যবহার করেন যা গত 10 বছরে লেখা হয়েছিল, তবে আমি বিশ্বাস করি যে একটি এসেম্ব্লার প্রোগ্রাম লিখতে আপনার খুব কঠিন সময় আসবে যা সি প্রোগ্রামের চেয়ে উল্লেখযোগ্যভাবে কার্যকর। যতক্ষণ না সম্ভবত আপনি প্রায় 30 বছরের পুরানো ডাইনোসর আর্কিটেকচারটি পিআইসি বা 8051 এর মতো ব্যবহার করছেন, তবে আপনি যা-ই করুন না কেন আপনার মন্থর প্রোগ্রাম হবে ...

সর্বাধিক আধুনিক জিসিসি এবং এলএলভিএম দ্বারা উত্পাদিত ধীর সমাবেশকে ঠিক করা বেশ তুচ্ছ। 4.x গিসিটি 3.x সিরিজের তুলনায় ধীর এবং কম দক্ষ কোড তৈরি করে (কিছু লক্ষ্যমাত্রার জন্য, কমপক্ষে আমি মূল্যায়িত করেছি, উদাহরণ হিসাবে এআরএম)। আমি মনে করি যে সংকলকটি মানুষের চেয়ে ভাল করছে এই ধারণাটি রক্ষা করা গুরুত্বপূর্ণ it এমনকি যখন এটি এটি করে কেবল তখনই ঘটে যখন মানুষ জানে যে তারা কী করছে। আপনি যদি সেগুলি কার্যকরভাবে ব্যবহার করতে চান তবে "আপনার সরঞ্জামগুলি জানুন"। সি দিয়ে শুরু করুন এবং প্রয়োজনে যখন এএসএম ব্যবহার করুন আপনি এটি ন্যায়সঙ্গত করতে পারেন ...
old_timer

যেহেতু জিসিসি ওপেন সোর্স, এটি একটি অদ্ভুত জন্তু। সম্ভবত particular নির্দিষ্ট বন্দরটি খারাপভাবে তৈরি করা হয়েছে। সমস্ত কোড অপ্টিমাইজেশন অবশ্যই নির্দিষ্ট প্ল্যাটফর্মের জন্য করা উচিত, এটি তুচ্ছ কাজ নয়। সেই প্ল্যাটফর্মের জন্য একটি বাণিজ্যিক সংকলক বনাম ম্যানুয়াল এসেম্বলারারের পারফরম্যান্সের তুলনা করা আরও ন্যায্য হবে।

জিসিসি মাল্টি-টার্গেট তাই এটি গড়ে বেশ ভাল কাজ করে তবে কোনও নির্দিষ্ট টার্গেটের জন্য দুর্দান্ত কাজ নয়। এবং এটিই প্রত্যাশিত। তবে একটি আধুনিক সংকলক, গত 10 বছর, ইত্যাদি সম্পর্কে আপনার বক্তব্য ঠিক রাখে না, সংকলকরা কোড তৈরির ক্ষেত্রে যতটা উন্নত হচ্ছে সেগুলি ভাষা এবং লক্ষ্যগুলি এবং উত্পন্ন কোডের ব্যয় অনুসারে বৈশিষ্ট্যগুলি আরও ভাল হচ্ছে। যে কোনও আধুনিক সংকলক সেরা কোডটি সম্ভব করে তোলে তা ধারণাটি ভুল। খুব সত্য যে, হাতে কোডড এসেম্বলিংয়ের চেয়ে গড় গড় অনেক বেশি, কোনও আকারের আকারের প্রকল্পকে সি এর চেয়ে ভাল করা
শক্ত নয়

এ কারণেই বেশিরভাগ লোকেরা বলে সি সমস্যা ব্যবহার না করা অবধি সি ব্যবহার করুন, তবে আপনি যদি সমস্যাটিকে ন্যায়সঙ্গত করতে পারেন তবে হাতটি asm এ পুনরুদ্ধার করুন। আপনার কি সামান্য পারফরম্যান্স লাভের দরকার আছে, এটিই যেখানে আপনার পারফরম্যান্স সমস্যাটি রয়েছে, আপনি কি এই কোডটি এএসএম সহ বজায় রাখতে চান, আপনি কি ভবিষ্যতের সংকলকটি পরীক্ষা করে দেখেন এটির আউটপুট মেরামত হয় বা আপনার সমস্যা হ্রাস পায় কিনা? গ্রহণযোগ্য স্তরে ইত্যাদি
old_timer

1

সমাবেশের জন্য কোড রক্ষণাবেক্ষণ এবং কার্য সম্পাদনের মধ্যে একটি অপরিবর্তনীয় সমঝোতা রয়েছে। আপনি সমাবেশ পড়তে / বজায় রাখা সহজ লিখতে পারেন, বা আপনি অত্যন্ত অনুকূলিত কোড লিখতে পারেন; কিন্তু আপনি উভয় করতে পারবেন না।

সি এর জন্য, আপসটি পুরোপুরি অদৃশ্য হয়ে যায় না, তবে এটি অনেক কম লক্ষণীয় - আপনি সি পড়তে / বজায় রাখতে সহজ লিখতে পারেন যা উপযুক্তভাবে অনুকূলিত হয়েছে।

একটি চমত্কার সংসদীয় ভাষা প্রোগ্রামার প্রায় সমস্ত সময়ই সংকলককে মারতে সক্ষম হবে, তবে বেশিরভাগ সময় তারা ইচ্ছাকৃতভাবে কোডটি সহজেই পড়তে / বজায় রাখতে সহজ লিখতে পছন্দ করবে; এবং তাই একটি দুর্দান্ত সংসদীয় ভাষা প্রোগ্রামার বেশিরভাগ সময় একটি সংকলক দ্বারা প্রহার করা হয়।

স্মার্ট উপায় হ'ল সমাবেশ এবং সি উভয় ব্যবহার করা (কেবলমাত্র সমাবেশ বা কেবল সি এর পরিবর্তে) - উদাহরণস্বরূপ কোডের এমন কিছু অংশের জন্য সি ব্যবহার করুন যেখানে একটি দুর্দান্ত সংসদীয় ভাষা প্রোগ্রামার রক্ষণাবেক্ষণযোগ্য / ধীর কোড লিখতে পছন্দ করেছেন এবং এর জন্য সমাবেশ ব্যবহার করবেন অবশিষ্ট (যেখানে "অত্যন্ত অনুকূলিত এবং রক্ষণাবেক্ষণের পক্ষে কঠোর" আসলে ন্যায়সঙ্গত)।


-3
  1. প্রোগ্রামিং দক্ষতার জন্য তুলনামূলকভাবে ভাল।
  2. সমাবেশ ব্যবহারের চেয়ে সি ভাষা ব্যবহার করে প্রোগ্রাম করা সহজ।
  3. সি ভাষার ভাষা সমাবেশ ভাষার চেয়ে বেশ দ্রুততর হতে পারে language
  4. এসেম্বলি কোডে সি নয়, তবে সি কোডে অ্যাসেমব্লিং লেখা সম্ভব।

3
সুবিধাগুলি কেবল ....
কিরণ সপকেলে

3
এটি বেশিরভাগ ক্ষেত্রে সমাবেশের মাধ্যমে সি ব্যবহারের কিছু সুবিধা / অসুবিধাগুলি কী? ; আপনি এখানে আলোচনায় নতুন কিছু যোগ করেননি।
মার্টিজান পিটারস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.