What is the purpose of a compiler in programming? 

Updated: 1 week ago
  • To convert source code into machine code
  • To debug code
  • To manage memory
  • To create graphics Galaxy
457
ব্যাখ্যাঃ

একটি কম্পাইলারের প্রধান কাজ হলো উচ্চ-স্তরের প্রোগ্রামিং ভাষা (যেমন C, C++, Java) দিয়ে লেখা সোর্স কোডকে (Source Code) কম্পিউটার সরাসরি বুঝতে ও এক্সিকিউট (Execute) করতে পারে এমন মেশিন কোডে (Machine Code) রূপান্তর করা। এই প্রক্রিয়াকে কম্পাইলেশন (Compilation) বলা হয়।

        
  • সোর্স কোড (Source Code): এটি এমন কোড যা প্রোগ্রামাররা লেখেন এবং এটি মানুষের কাছে তুলনামূলকভাবে পাঠযোগ্য।
  •     
  • মেশিন কোড (Machine Code): এটি বাইনারি (0 এবং 1) ফরম্যাটে থাকা কোড যা প্রসেসর সরাসরি বোঝে এবং নির্দেশাবলী হিসেবে এক্সিকিউট করে।

কম্পাইলার সোর্স কোডকে স্ক্যান করে, সিনট্যাক্স (Syntax) এবং সিমান্টিক (Semantic) ত্রুটি পরীক্ষা করে, এবং সফলভাবে এটিকে মেশিন কোডে পরিণত করে একটি এক্সিকিউটেবল ফাইল (Executable File) তৈরি করে।

অন্যান্য অপশনগুলো ভুল কারণ:

        
  • কোড ডিবাগ করা (To debug code): কোডে থাকা ভুল বা ত্রুটি খুঁজে বের করা এবং সংশোধন করার প্রক্রিয়াকে ডিবাগিং বলে। এটি কম্পাইলারের সরাসরি কাজ নয়, যদিও কম্পাইলার কম্পাইলেশনের সময় সিনট্যাক্স ত্রুটি (Syntax error) ধরতে পারে। ডিবাগিংয়ের জন্য সাধারণত ডিবাগার (Debugger) নামক আলাদা টুল ব্যবহার করা হয়।
  •     
  • মেমরি পরিচালনা করা (To manage memory): মেমরি ব্যবস্থাপনার কাজটি অপারেটিং সিস্টেম (Operating System), রানটাইম এনভায়রনমেন্ট (Runtime Environment) অথবা কিছু ক্ষেত্রে প্রোগ্রামার নিজেই করে থাকেন। কম্পাইলারের মূল কাজ মেমরি ব্যবস্থাপনা নয়।
  •     
  • গ্রাফিক্স তৈরি করা (To create graphics): গ্রাফিক্স তৈরির জন্য গ্রাফিক্স লাইব্রেরি (Graphics Library), API (যেমন OpenGL, DirectX) এবং গ্রাফিক্স ডিজাইন সফটওয়্যার ব্যবহার করা হয়। এটি কম্পাইলারের কাজের আওতাভুক্ত নয়।
Satt AI
Satt AI
1 month ago

অনুবাদক প্রোগ্রাম বা কম্পাইলার (Compiler) হলো একটি সফটওয়্যার প্রোগ্রাম যা উচ্চ স্তরের প্রোগ্রামিং ভাষায় লেখা কোডকে (যেমন C, C++, Java) মেশিন ল্যাঙ্গুয়েজ বা মেশিন কোডে অনুবাদ করে, যা কম্পিউটার সিস্টেম সরাসরি কার্যকর করতে পারে। কম্পাইলার মূলত প্রোগ্রামারদের জন্য একটি গুরুত্বপূর্ণ টুল, কারণ এটি প্রোগ্রামের উৎস কোডকে মেশিন কোডে রূপান্তর করে এবং প্রোগ্রামকে কার্যকর করার জন্য প্রস্তুত করে।

কম্পাইলারের কাজের পদ্ধতি:

কম্পাইলার একটি প্রোগ্রামের কোডকে সম্পূর্ণভাবে মেশিন কোডে রূপান্তর করার আগে কয়েকটি ধাপে কাজ করে। প্রতিটি ধাপে কোডের গঠন, ত্রুটি এবং গুণগত মান যাচাই করা হয়। নিচে কম্পাইলারের ধাপগুলো সংক্ষেপে বর্ণনা করা হলো:

১. লেক্সিক্যাল অ্যানালাইসিস (Lexical Analysis):

  • কম্পাইলার প্রথমে প্রোগ্রামের সোর্স কোডকে টোকেন (Token) হিসেবে বিভক্ত করে। প্রতিটি টোকেন প্রোগ্রামের শব্দ, চিহ্ন, বা সংখ্যার প্রতিনিধিত্ব করে।
  • উদাহরণ: একটি লাইন int x = 5; কম্পাইলার টোকেন হিসেবে int, x, =, 5, এবং ; শনাক্ত করবে।

২. সিনট্যাক্স অ্যানালাইসিস (Syntax Analysis):

  • এই ধাপে কম্পাইলার প্রোগ্রামের টোকেনগুলির গঠন এবং সঠিকতা যাচাই করে। এটি যাচাই করে যে প্রোগ্রামের টোকেনগুলো সঠিক সিনট্যাক্স অনুসরণ করছে কিনা।
  • উদাহরণ: যদি প্রোগ্রামের একটি লাইন ভুল হয়, যেমন int x = ;, তাহলে কম্পাইলার সিনট্যাক্স ত্রুটি দেখাবে।

৩. সেম্যান্টিক অ্যানালাইসিস (Semantic Analysis):

  • কম্পাইলার এখানে প্রোগ্রামের অর্থ এবং যৌক্তিক গঠন যাচাই করে। এটি ভেরিয়েবল এবং ডেটা টাইপের সঠিকতা এবং ফাংশনের লজিক্যাল সংহতির যাচাই করে।
  • উদাহরণ: যদি কোনো ভেরিয়েবল ঘোষণা করা হয় কিন্তু তার কোনো মান নির্ধারণ না করা হয়, তাহলে এটি একটি সেম্যান্টিক ত্রুটি হতে পারে।

৪. ইন্টারমিডিয়েট কোড জেনারেশন (Intermediate Code Generation):

  • এই ধাপে কম্পাইলার প্রোগ্রামের সোর্স কোডকে ইন্টারমিডিয়েট (Intermediate) ফর্ম্যাটে রূপান্তর করে, যা কম্পাইলারকে মেশিন নিরপেক্ষভাবে কাজ করতে সাহায্য করে।
  • এটি একটি সাধারণ রূপ, যা মেশিন কোড বা প্রাথমিক অপকোড (Opcode) হিসেবে সংরক্ষিত হয়।

৫. কোড অপ্টিমাইজেশন (Code Optimization):

  • এই ধাপে কম্পাইলার কোডকে আরও কার্যকর এবং দ্রুততর করার জন্য অপটিমাইজ করে। এটি অপ্রয়োজনীয় কোড অংশগুলো সরিয়ে দেয় এবং কোডের কার্যকারিতা বাড়ানোর জন্য পরিবর্তন করে।

৬. কোড জেনারেশন (Code Generation):

  • কম্পাইলার প্রোগ্রামের ইন্টারমিডিয়েট ফর্ম থেকে মেশিন কোডে রূপান্তর করে। এটি কম্পিউটারের মেশিন ল্যাঙ্গুয়েজে কোড প্রস্তুত করে, যা কম্পিউটার সরাসরি কার্যকর করতে পারে।

৭. ত্রুটি শনাক্তকরণ এবং প্রতিবেদন (Error Detection and Reporting):

  • কম্পাইলার কোডের ত্রুটি শনাক্ত করে এবং ব্যবহারকারীকে ত্রুটি সম্পর্কে তথ্য দেয়, যাতে প্রোগ্রামার সেই ত্রুটি সংশোধন করতে পারে।

কম্পাইলারের সুবিধা:

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

কম্পাইলারের সীমাবদ্ধতা:

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

কম্পাইলার এবং ইন্টারপ্রেটারের পার্থক্য:

কম্পাইলার:

  • পুরো প্রোগ্রাম একবারে অনুবাদ করে এবং মেশিন কোডে রূপান্তর করে।
  • প্রোগ্রামকে একবার কম্পাইল করে তৈরি ফাইল বারবার চালানো যায়।
  • উদাহরণ: C, C++ কম্পাইলার।

ইন্টারপ্রেটার:

  • লাইন বাই লাইন প্রোগ্রাম পড়ে এবং তাৎক্ষণিকভাবে কার্যকর করে।
  • প্রতিবার প্রোগ্রাম চালানোর সময় কোডকে পুনরায় ইন্টারপ্রেট করতে হয়।
  • উদাহরণ: Python, JavaScript ইন্টারপ্রেটার।

উদাহরণ:

C প্রোগ্রাম কম্পাইলার (GCC): GCC (GNU Compiler Collection) একটি ওপেন সোর্স কম্পাইলার, যা C, C++, এবং অন্যান্য প্রোগ্রামিং ভাষা কম্পাইল করতে ব্যবহৃত হয়।

সারসংক্ষেপ:

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

Related Question

View All
  • এটি Interpreter-এর চেয়ে অনুবাদ করতে বেশি সময় লাগে
  • এটি প্রতি লাইন প্রোগ্রাম পড়ে এবং অনুবাদ করে
  • এটি একবারে পুরো প্রোগ্রাম অনুবাদ করে
  • এটি মেশিন প্রোগ্রামকে সোর্স প্রোগ্রামে রূপান্তর করে
1.1k
Updated: 1 week ago
  • Logical error
  • syntax error
  • Both logical and syntax error
  • Non logical and Syntax error
1.9k
শিক্ষকদের জন্য বিশেষভাবে তৈরি

১ ক্লিকে প্রশ্ন, শীট, সাজেশন
অনলাইন পরীক্ষা তৈরির সফটওয়্যার!

শুধু প্রশ্ন সিলেক্ট করুন — প্রশ্নপত্র অটোমেটিক তৈরি!

প্রশ্ন এডিট করা যাবে
জলছাপ দেয়া যাবে
ঠিকানা যুক্ত করা যাবে
Logo, Motto যুক্ত হবে
অটো প্রতিষ্ঠানের নাম
অটো সময়, পূর্ণমান
প্রশ্ন এডিট করা যাবে
জলছাপ দেয়া যাবে
ঠিকানা যুক্ত করা যাবে
Logo, Motto যুক্ত হবে
অটো প্রতিষ্ঠানের নাম
অটো সময়, পূর্ণমান
অটো নির্দেশনা (এডিটযোগ্য)
অটো বিষয় ও অধ্যায়
OMR সংযুক্ত করা যাবে
ফন্ট, কলাম, ডিভাইডার
প্রশ্ন/অপশন স্টাইল পরিবর্তন
সেট কোড, বিষয় কোড
অটো নির্দেশনা (এডিটযোগ্য)
অটো বিষয় ও অধ্যায়
OMR সংযুক্ত করা যাবে
ফন্ট, কলাম, ডিভাইডার
প্রশ্ন/অপশন স্টাইল পরিবর্তন
সেট কোড, বিষয় কোড
এখনই শুরু করুন ডেমো দেখুন
৫০,০০০+
শিক্ষক
৩০ লক্ষ+
প্রশ্নপত্র
মাত্র ১৫ পয়সায় প্রশ্নপত্র
১ ক্লিকে প্রশ্ন, শীট, সাজেশন তৈরি করুন আজই

Complete Exam
Preparation

Learn, practice, analyse and improve

1M+ downloads
4.6 · 8k+ Reviews

Question Analytics

মোট উত্তরদাতা

জন

সঠিক
ভুল
উত্তর নেই