Computer Programming Procedure Overloading এবং Generic Interfaces গাইড ও নোট

266

প্রোসিডিওর ওভারলোডিং এবং জেনেরিক ইন্টারফেস (Procedure Overloading and Generic Interfaces in Fortran)

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


১. প্রোসিডিওর ওভারলোডিং (Procedure Overloading)

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

উদাহরণ:

ফোরট্রানে, আমরা একটি নির্দিষ্ট নামের সঙ্গে একাধিক ফাংশন বা প্রসিডিউর তৈরি করতে পারি যেগুলি বিভিন্ন ধরনের আর্গুমেন্ট গ্রহণ করবে।

module procedure_overloading
contains

    ! Integer type addition
    function add(a, b)
        integer :: a, b
        integer :: add
        add = a + b
    end function add

    ! Real type addition
    function add(a, b)
        real :: a, b
        real :: add
        add = a + b
    end function add

end module procedure_overloading

program test
    use procedure_overloading
    integer :: int_result
    real :: real_result

    ! Integer addition
    int_result = add(2, 3)
    print *, "Integer addition: ", int_result

    ! Real addition
    real_result = add(3.5, 4.5)
    print *, "Real addition: ", real_result

end program test

এখানে:

  • add ফাংশন দুটি আলাদা ডেটা টাইপের জন্য তৈরি করা হয়েছে: একটি integer টাইপ এবং আরেকটি real টাইপ।
  • ফাংশন নাম একই থাকলেও তাদের ডেটা টাইপের ভিত্তিতে ভিন্ন ভিন্ন কাজ করবে।

২. জেনেরিক ইন্টারফেস (Generic Interfaces)

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

উদাহরণ:

module generic_interface
contains

    ! Integer type addition
    interface add
        module procedure add_int
    end interface add

    ! Real type addition
    interface add
        module procedure add_real
    end interface add

    ! Integer addition procedure
    function add_int(a, b)
        integer :: a, b
        integer :: add_int
        add_int = a + b
    end function add_int

    ! Real addition procedure
    function add_real(a, b)
        real :: a, b
        real :: add_real
        add_real = a + b
    end function add_real

end module generic_interface

program test_generic
    use generic_interface
    integer :: int_result
    real :: real_result

    ! Integer addition
    int_result = add(2, 3)
    print *, "Integer addition: ", int_result

    ! Real addition
    real_result = add(3.5, 4.5)
    print *, "Real addition: ", real_result

end program test_generic

এখানে:

  • add নামের একটি জেনেরিক ইন্টারফেস তৈরি করা হয়েছে যা দুটি পৃথক ফাংশনকে নির্দেশ করছে: add_int (ইন্টিজার টাইপের জন্য) এবং add_real (রিয়েল টাইপের জন্য)।
  • যখন add(2, 3) কল করা হয়, ফোরট্রান এটি add_int ফাংশনকে কল করে এবং যখন add(3.5, 4.5) কল করা হয়, এটি add_real ফাংশনকে কল করে।

৩. জেনেরিক ফাংশন বা প্রসিডিউর নির্বাচন

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

উদাহরণ (জেনেরিক ফাংশন):

module generic_addition
contains

    interface add
        module procedure add_integer, add_real
    end interface add

    function add_integer(a, b)
        integer :: a, b
        integer :: add_integer
        add_integer = a + b
    end function add_integer

    function add_real(a, b)
        real :: a, b
        real :: add_real
        add_real = a + b
    end function add_real

end module generic_addition

program test_generic_addition
    use generic_addition
    integer :: i_result
    real :: r_result

    i_result = add(5, 10)        ! Calls add_integer
    r_result = add(3.5, 4.5)     ! Calls add_real

    print *, "Integer result: ", i_result
    print *, "Real result: ", r_result
end program test_generic_addition

এখানে:

  • add নামক জেনেরিক ইন্টারফেসটি দুটি ফাংশন (add_integer এবং add_real) পদ্ধতিকে যুক্ত করেছে।
  • যখন add(5, 10) কল করা হয়, এটি add_integer ফাংশনটিকে কল করবে।
  • যখন add(3.5, 4.5) কল করা হয়, এটি add_real ফাংশনটিকে কল করবে।

৪. উপসংহার

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

ফোরট্রান প্রোগ্রামিংয়ে এগুলি কোডকে আরো ক্লিন, নমনীয় এবং পুনঃব্যবহারযোগ্য করে তোলে, বিশেষত যখন একাধিক ডেটা টাইপের সঙ্গে কাজ করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...