offSchoolবেটা

তথ্য ও যোগাযোগ প্রযুক্তি · অধ্যায় ৬ · টপিক ১

সমস্যা সমাধান, প্রোগ্রামিং ভাষা, মেশিন কোড, কম্পাইলার ও ইন্টারপ্রেটার

  • সমস্যা সমাধান ও প্রোগ্রামিং
  • প্রোগ্রামিং ভাষা ও মেশিন কোড
  • কম্পাইলার ও ইন্টারপ্রেটার
  • কোন প্রোগ্রামিং ভাষাটি শিখব?

পড়ার নোট

সমস্যা সমাধান

বাস্তব জীবনে আমরা নানা সমস্যায় পড়ি। সমস্যা সমাধান হলো সমস্যার প্রকৃতি বুঝে তা অতিক্রমের উপায় খুঁজে বের করা। এতে সাধারণত এই ধাপগুলো থাকে:

  • সমস্যাটি স্পষ্টভাবে বোঝা ও সংজ্ঞায়িত করা
  • সম্ভাব্য সমাধানগুলো ভাবা
  • বিকল্প সমাধানগুলো মূল্যায়ন করা
  • সেরা সমাধানটি বাস্তবায়ন করা

কম্পিউটার দিয়ে সমাধান করতে হলে সেই ধাপগুলো কম্পিউটারকে বুঝিয়ে দিতে হয়। এটাই প্রোগ্রামিং।

প্রোগ্রামিং ভাষা ও মেশিন কোড

আমরা বাংলা, ইংরেজি ইত্যাদি ভাষায় কথা বলি, কিন্তু কম্পিউটার সরাসরি এগুলো বোঝে না। কম্পিউটার ও যেকোনো ইলেকট্রনিক যন্ত্র শুধু ০ আর ১ বোঝে। এই ০ ও ১ দিয়ে নির্দেশ লেখা আমাদের জন্য কঠিন। তাই এমন কিছু ভাষা আছে, যার নিয়ম মেনে নির্দেশ লিখলে কম্পিউটার তা নিজের বোঝার উপযোগী রূপে রূপান্তর করে নিতে পারে। এগুলো প্রোগ্রামিং ভাষা, যেমন সি, সি++, পাইথন, জাভা।

মেশিন কোড বা মেশিন ভাষা হলো ০ ও ১ দিয়ে তৈরি বাইনারি কোড, যা কম্পিউটার সরাসরি বোঝে। প্রোগ্রামিং ভাষা থেকে মেশিন কোডে রূপান্তরের কাজ করে অনুবাদক (translator) প্রোগ্রাম। অনুবাদক দুই রকম।

কম্পাইলার ও ইন্টারপ্রেটার

  • কম্পাইলার (Compiler): সব নির্দেশ নির্ভুল হলে একসঙ্গে মেশিন কোডে রূপান্তর করে। কোথাও ভুল থাকলে রূপান্তর শুরুই করতে পারে না।
  • ইন্টারপ্রেটার (Interpreter): একটি একটি করে নির্দেশ ধারাবাহিকভাবে রূপান্তর করে। কোনো নির্দেশে ভুল পেলে সেখানে এসে থেমে যায়।

সহজ উপমা: পুরো বক্তৃতা লিখিত অনুবাদ করে দেওয়া কম্পাইলারের মতো, আর বক্তার সঙ্গে সঙ্গে এক বাক্য করে অনুবাদ করা ইন্টারপ্রেটারের মতো।

কোন ভাষা শিখব

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

মনে রাখো: কম্পাইলার সব নির্দেশ একসঙ্গে, ইন্টারপ্রেটার একটি একটি করে মেশিন কোডে রূপান্তর করে।

২০২৬ সালের NCTB পাঠ্যবই অনুসরণ করে লেখা।

চালিয়ে দেখো

  • ইন্টারপ্রেটার বনাম কম্পাইলার: ভুল লাইনে কী হয়চালিয়ে দেখো

    তানিম Thonny-তে চার লাইনের একটি প্রোগ্রাম লিখল। প্রথম দুই লাইনে A ও B ছাপানোর কথা, তৃতীয় লাইনে সে c নামের একটি ভ্যারিয়েবল ছাপাতে চাইল, যেটি আগে কোথাও তৈরি করা হয়নি, আর চতুর্থ লাইনে D ছাপানোর কথা। পাইথন একটি ইন্টারপ্রেটার দিয়ে চলে। প্রোগ্রামটি চালালে স্ক্রিনে কী দেখা যাবে?

এই টপিকের পার্থক্য

অনুশীলনের প্রশ্ন

  1. পাইথন একটি ইন্টারপ্রেটার ব্যবহার করে। নিচের প্রোগ্রামটির ৩ নম্বর লাইনে c নামে কোনো ভ্যারিয়েবল তৈরি করা হয়নি। প্রোগ্রামটি চালালে কী ঘটবে?

    print("A")
    print("B")
    print(c)
    print("D")
    
    1. ক

      কিছুই প্রিন্ট হয় না, ভুল থাকায় পুরো প্রোগ্রাম শুরুই হয় না

    2. খ

      A ও B প্রিন্ট হয়, তারপর ৩ নম্বর লাইনে ত্রুটির বার্তা এসে প্রোগ্রাম থেমে যায়, D প্রিন্ট হয় না

    3. গ

      A, B ও D প্রিন্ট হয়; ত্রুটিপূর্ণ লাইনটি বাদ পড়ে

    4. ঘ

      A, B প্রিন্ট হয়, তারপর c লেখা প্রিন্ট হয় এবং D-ও প্রিন্ট হয়

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    খ) A ও B প্রিন্ট হয়, তারপর ৩ নম্বর লাইনে ত্রুটির বার্তা এসে প্রোগ্রাম থেমে যায়, D প্রিন্ট হয় না

    1. ইন্টারপ্রেটার নির্দেশগুলো একটি একটি করে ক্রমানুসারে মেশিন কোডে রূপান্তর করে এবং কোনো নির্দেশে ত্রুটি পেলে সেখানেই থেমে যায়।
    2. তাই প্রথমে লাইন ১ ও ২ চলে এবং A ও B প্রিন্ট হয়। লাইন ৩-এ c সংজ্ঞায়িত নয়, ফলে NameError আসে ও প্রোগ্রাম থেমে যায়; লাইন ৪ আর চলে না। (python৩-এ চালিয়ে দেখা হয়েছে: আউটপুট A, B, তারপর NameError: name 'c' is not defined)।
  2. যে অনুবাদক প্রোগ্রাম সম্পূর্ণ সোর্স প্রোগ্রামকে একসাথে মেশিন ভাষায় রূপান্তর করে, তাকে কী বলে?

    1. ক

      কম্পাইলার

    2. খ

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

    3. গ

      টেক্সট এডিটর

    4. ঘ

      ডিবাগার

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    ক) কম্পাইলার

    1. কম্পাইলার পুরো সোর্স কোডকে একসাথে পড়ে একবারে সম্পূর্ণ প্রোগ্রামটিকে মেশিন ভাষায় অনুবাদ করে।
    2. অন্যদিকে, ইন্টারপ্রেটার সম্পূর্ণ কোড একসাথে নয়, বরং প্রতি লাইন আলাদাভাবে অনুবাদ ও নির্বাহ করে।
  3. কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে দুটি পার্থক্য লেখো।

    উত্তর ও ব্যাখ্যা
    সঠিক উত্তর:

    কম্পাইলার প্রোগ্রামের সব নির্দেশ একসাথে মেশিন কোডে রূপান্তর করে, কিন্তু ইন্টারপ্রেটার নির্দেশগুলো একটি একটি করে ক্রমানুসারে রূপান্তর করে। কম্পাইলার প্রোগ্রামের কোথাও ত্রুটি থাকলে অনুবাদই শুরু করতে পারে না, আর ইন্টারপ্রেটার যে নির্দেশে ত্রুটি পায় সেখানে এসে থেমে যায়।

    1. কম্পাইলার পুরো প্রোগ্রাম একবারে অনুবাদ করে; ইন্টারপ্রেটার এক নির্দেশ করে করে অনুবাদ করে। যেমন, পুরো লিখিত বক্তৃতা আগে থেকে অনুবাদ করা কম্পাইলারের মতো আর বক্তা বলার সাথে সাথে বাক্যে বাক্যে অনুবাদ করা ইন্টারপ্রেটারের মতো।
    2. ত্রুটির ক্ষেত্রে কম্পাইলার ত্রুটি থাকলে অনুবাদই শুরু করে না, আর ইন্টারপ্রেটার ত্রুটিযুক্ত নির্দেশ পর্যন্ত চলে সেখানে থেমে যায়। পাইথন ইন্টারপ্রেটার ব্যবহার করে।

এই টপিক নিয়ে প্রশ্ন আছে?

মেন্টরকে বাংলায় বা ইংরেজিতে জিজ্ঞেস করো, বা খাতার ছবি দাও। সিমুলেশন চালিয়ে বুঝিয়ে দেবে।

মেন্টরকে জিজ্ঞেস করো