Subroutines এবং Functions কল করা

Control Flow Statements in Parrot (নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস) - প্যারট (Parrot) - Computer Programming

327

PASM (Parrot Assembly Language) এ subroutines এবং functions প্রোগ্রামে কোডের পুনঃব্যবহারযোগ্য অংশ হিসেবে ব্যবহৃত হয়। একে subroutine বা function হিসেবে ডাকা হলেও, পার্থক্য হতে পারে নির্দিষ্ট ভাষার ব্যবহারে। তবে, PASMsubroutine বা function এর ব্যবহারের ধারণা একে অপরের কাছাকাছি।

PASM ভাষায় subroutines এবং functions কল করার জন্য নির্দিষ্ট কৌশল রয়েছে।

PASM-এ Subroutines কল করার পদ্ধতি

Subroutines হল এমন কোডের ব্লক যা একাধিক জায়গায় ব্যবহার করা যেতে পারে এবং অন্য অংশের কোডকে পরিষ্কার ও সহজ করতে সহায়তা করে। প্যারট ভার্চুয়াল মেশিনে subroutine কল করার জন্য call এবং return কমান্ড ব্যবহৃত হয়।

Subroutine Declaration (ডিক্লেয়ারেশন)

একটি subroutine শুরু করতে .sub কমান্ড ব্যবহার করা হয় এবং শেষ করতে .end কমান্ড ব্যবহার করা হয়।

Subroutine Call (কল করা)

যখন একটি subroutine কল করতে চান, তখন call ইনস্ট্রাকশন ব্যবহার করা হয়। যখন subroutine শেষ হয়, তখন return কমান্ড ব্যবহার করা হয় যাতে এক্সিকিউশন মূল প্রোগ্রামে ফিরে আসে।

PASM-এ Subroutine উদাহরণ

.sub add_numbers
    load $P0, 5           # Load 5 into register $P0
    load $P1, 7           # Load 7 into register $P1
    add $P2, $P0, $P1     # Add $P0 and $P1, store result in $P2
    print $P2             # Print result
    return                # Return from subroutine
.end

.sub main
    call add_numbers      # Call the add_numbers subroutine
    return                # Return from main subroutine
.end

ব্যাখ্যা:

  • add_numbers নামে একটি subroutine তৈরি করা হয়েছে, যা দুটি নম্বর যোগ করে এবং ফলাফল আউটপুট হিসাবে প্রিন্ট করে।
  • main subroutine থেকে add_numbers কল করা হয়েছে call কমান্ডের মাধ্যমে।
  • return কমান্ডটি কলের পরে কোডের নির্বাহকে মূল (main) প্রোগ্রামে ফিরিয়ে নিয়ে আসে।

Functions কল করার পদ্ধতি

PASM-এ function এবং subroutine এর মধ্যে পার্থক্য খুব কম। তবে একটি function সাধারণত কোনো মান (value) ফেরত (return) করে। এ ক্ষেত্রে return মানটি ব্যবহার করে ফিরিয়ে নেওয়া হয়।

Function Declaration (ডিক্লেয়ারেশন)

একটি function ডিফাইন করতে .sub ব্যবহার করা হয়, এবং এটি মান ফেরত দেওয়ার জন্য return নির্দেশিকা ব্যবহৃত হয়।

Function Call (কল করা)

ফাংশন কল করার সময় call ইনস্ট্রাকশন ব্যবহার করা হয় এবং ফিরতি মান (return value) একটি রেজিস্টারে সংরক্ষণ করা হয়।

PASM-এ Function উদাহরণ

.sub add_numbers
    load $P0, 5           # Load 5 into register $P0
    load $P1, 7           # Load 7 into register $P1
    add $P2, $P0, $P1     # Add $P0 and $P1, store result in $P2
    return $P2            # Return the result in $P2
.end

.sub main
    call add_numbers      # Call the add_numbers function
    print $P0             # Print the returned value
    return
.end

ব্যাখ্যা:

  • add_numbers function দুটি সংখ্যাকে যোগ করে এবং ফলাফল $P2 এ সংরক্ষণ করে, পরে return $P2 দিয়ে মানটি ফিরিয়ে দেয়।
  • main সাবরুটিনে call add_numbers ফাংশনটি কল করা হয়েছে এবং তারপর print $P0 দিয়ে ফিরে আসা মান প্রিন্ট করা হয়েছে।

Return Values

PASM-এ return values সাধারণত রেজিস্টারে সংরক্ষিত হয়। যখন আপনি একটি ফাংশন বা সাবরুটিন থেকে কোন মান ফেরত দিতে চান, তখন return এর মাধ্যমে সেই মান রেজিস্টারে ফেরত পাওয়া যায়। উদাহরণস্বরূপ:

return $P2   # returns the value in register $P2

ফাংশন ও সাবরুটিনের ব্যবহারে পার্থক্য

  1. Subroutine: সাধারণত কোন মান ফেরত দেয় না। এটি শুধুমাত্র কোডের পুনঃব্যবহারযোগ্য অংশ হিসেবে ব্যবহৃত হয়।
  2. Function: কোন মান বা আউটপুট ফেরত দেয় এবং এটি মূলত রেজিস্টারে সেই মান রেখে দেয়, যেটি অন্য অংশে ব্যবহৃত হতে পারে।

সারাংশ

PASM ভাষায় subroutine এবং function হল পুনঃব্যবহারযোগ্য কোড ব্লক যা এক্সিকিউশন চলাকালীন বিভিন্ন জায়গায় কল করা যেতে পারে। call কমান্ডের মাধ্যমে একটি সাবরুটিন বা ফাংশন কল করা হয় এবং return দিয়ে তার আউটপুট বা পরবর্তী এক্সিকিউশনে ফিরে আসা হয়। Subroutine সাধারণত কোনো মান ফেরত দেয় না, তবে function একটি মান ফেরত দিতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...